Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 12707|回复: 18

[已解决]求助:怎样用VBA打开WORD文档

[复制链接]
发表于 2009-12-21 11:20 | 显示全部楼层 |阅读模式

DBTfOMfH.rar (76.9 KB, 下载次数: 55)

求助:怎样用VBA打开WORD文档

求助:怎样用VBA打开WORD文档
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2009-12-21 11:37 | 显示全部楼层

传不了附件。。。。


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count = 1 Then
        If Target.Row > 2 And Target.Column = 3 And Len(Target) > 0 Then
            Dim wdApp, MyFound As Boolean
            With Application.FileSearch
                .FileType = msoFileTypeWordDocuments
                .LookIn = ThisWorkbook.Path
                .Filename = "*" & Target & "*"
                If .Execute > 0 Then
                    Set wdApp = CreateObject("word.application")
                    wdApp.Visible = True
                    wdApp.Documents.Open .FoundFiles(1)
                Else
                    MsgBox "文件未找到"
                End If
            End With
        End If
    End If
End Sub
[此贴子已经被作者于2009-12-21 12:28:29编辑过]
回复

使用道具 举报

发表于 2009-12-21 12:35 | 显示全部楼层

跟着楼上混!帮忙加了一点料![em04]

考虑了文件有多个的情况!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim TR
TR = Target.Row
If Cells(TR, 1) <> "" And Cells(TR, 2) <> "" And Cells(TR, 2) <> "" Then
    If Target.Count = 1 Then
        If TR > 2 And Target.Column = 3 Then
            Dim wdApp, MyFound As Boolean
            With Application.FileSearch
                .FileType = msoFileTypeWordDocuments
                .LookIn = ThisWorkbook.Path
                .Filename = "*" & Target & "*"
                If .Execute > 0 Then
                    Dim fcount                    
                        Set wdApp = CreateObject("word.application")
                        wdApp.Visible = True

                    For fcount = 1 To .Execute
                        wdApp.Documents.Open .FoundFiles(fcount)
                    Next
                Else
                    MsgBox "文件未找到"
                End If
            End With
        End If
    End If
    End If
End Sub

PS:楼主可别用2007玩这个哦,不兼容地![em01]

回复

使用道具 举报

 楼主| 发表于 2009-12-21 13:01 | 显示全部楼层

谢谢楼上的两位,我们部门的同事都装的是07版本,所以不能使用。

能不能搞个03 07兼容的啊?

谢谢了

回复

使用道具 举报

发表于 2009-12-21 13:40 | 显示全部楼层

QUOTE:
以下是引用ID莫乱改在2009-12-21 13:01:00的发言:

谢谢楼上的两位,我们部门的同事都装的是07版本,所以不能使用。

能不能搞个03 07兼容的啊?

谢谢了

没有07。所以不太清楚哪里不同。

回复

使用道具 举报

发表于 2009-12-21 13:43 | 显示全部楼层

学习一下啦

回复

使用道具 举报

 楼主| 发表于 2009-12-21 15:00 | 显示全部楼层

求助:怎样用VBA打开WORD文档

求助:怎样用VBA打开WORD文档

07版本的提示这样的错误

回复

使用道具 举报

发表于 2009-12-21 15:22 | 显示全部楼层    本楼为最佳答案   

那么用FSO吧

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count = 1 Then
        If Target.Row > 2 And Target.Column = 3 And Len(Target) > 0 Then
            Dim wdApp As Object
            Dim objFso As Object
            Dim Fs As Object
            Dim sFile As Object
            Set objFso = CreateObject("Scripting.FileSystemObject")
            Set Fs = objFso.GetFolder(ThisWorkbook.Path).Files
            For Each sFile In Fs
                If InStr(1, sFile.Name, Target, vbTextCompare) Then
                    Set wdApp = CreateObject("word.application")
                    wdApp.Visible = True
                    wdApp.Documents.Open sFile.Path
                    Exit Sub
                End If
            Next sFile
            MsgBox "文件未找到"
        End If
    End If
End Sub
回复

使用道具 举报

发表于 2009-12-21 15:41 | 显示全部楼层

跟着师傅学习
回复

使用道具 举报

 楼主| 发表于 2009-12-21 15:57 | 显示全部楼层

谢谢了 问题解决了。。

还有个问题,能不能加个防出错功能

就是当 WORD文件已经打开的前提下,如果再选择C列单元格时就出现,就MSGBOX“文件已经打开。。”

还有 如果有两个WORD文件都有这个编号的话,怎样处理?能不能设置为都打开?当然也要考虑到上面的防出错功能

谢谢1

[此贴子已经被作者于2009-12-21 15:58:37编辑过]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-6 07:56 , Processed in 0.285202 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表