|
本帖最后由 cherrycdh 于 2024-2-25 16:17 编辑
我需要在word中做一个工具按钮,然后状态形式如下的:
当我点击这个按钮时,先获取2列1行的数据作为搜索项,然后搜索D盘特殊标签文件夹中的文件,如果找到包含那个单元格数据的文件夹时往下一层找,找到包含特殊标签-单元格数据的文件,现在的问题是,我搜索到的文件有可能是doc也有可能是xls后者pdf的,我怎么让它自动使用相应的默认程序打开文件呢
文件内容大致是这样的
- Private Sub CommandButton1_Click()
- ' 获取第一个表格的第一行第二列左边起前7个数据作为客户编号数据
- Dim 客户编号 As String
- 客户编号 = Left(ActiveDocument.Tables(1).Cell(1, 2).Range.Text, 7)
- ' 构建特殊标签文件夹路径
- Dim 文件夹路径 As String
- 文件夹路径 = "D:\特殊标签"
- ' 查找包含客户编号的文件夹
- Dim 客户文件夹路径 As String
- 客户文件夹路径 = 文件夹包含客户编号(文件夹路径, 客户编号)
- If 客户文件夹路径 <> "" Then
- ' 在客户文件夹中查找包含内容为客户标签-客户编号数据的文件
- Dim 文件名数据 As String
- 文件名数据 = 文件夹中包含客户标签文件(客户文件夹路径, "客户标签-" & 客户编号)
- If 文件名数据 <> "" Then
- ' 弹出对话框
- Dim response As VbMsgBoxResult
- response = MsgBox("是否打开文件 " & 文件名数据 & "?", vbYesNo + vbExclamation, "文件打开预警")
- ' 根据用户的选择进行操作
- If response = vbYes Then
- ' 打开文件
- Documents.Open 客户文件夹路径 & "" & 文件名数据
- End If
- Else
- ' 弹出对话框询问是否打开客户文件夹
- Dim responseFolder As VbMsgBoxResult
- responseFolder = MsgBox("未找到包含客户标签的文件,是否打开客户文件夹?", vbYesNo + vbExclamation, "文件夹打开预警")
- ' 根据用户的选择进行操作
- If responseFolder = vbYes Then
- ' 打开客户文件夹
- Shell "explorer.exe """ & 客户文件夹路径 & """", vbNormalFocus
- End If
- End If
- Else
- ' 弹出对话框
- MsgBox "未找到包含客户编号的文件夹"
- End If
- End Sub
- Function 文件夹包含客户编号(文件夹路径 As String, 客户编号 As String) As String
- ' 使用FileSystemObject检查文件夹是否存在
- Dim fso As Object
- Set fso = CreateObject("Scripting.FileSystemObject")
- ' 获取文件夹列表
- Dim 文件夹 As Object
- For Each 文件夹 In fso.GetFolder(文件夹路径).SubFolders
- ' 检查文件夹名称是否包含客户编号
- If InStr(1, 文件夹.Name, 客户编号) > 0 Then
- 文件夹包含客户编号 = 文件夹.Path
- Exit Function
- End If
- Next 文件夹
- ' 未找到匹配的文件夹
- 文件夹包含客户编号 = ""
- End Function
- Function 文件夹中包含客户标签文件(文件夹路径 As String, 客户标签 As String) As String
- ' 使用FileSystemObject检查文件夹是否存在
- Dim fso As Object
- Set fso = CreateObject("Scripting.FileSystemObject")
- ' 获取文件列表
- Dim 文件 As Object
- For Each 文件 In fso.GetFolder(文件夹路径).Files
- ' 检查文件名是否包含客户标签
- If InStr(1, 文件.Name, 客户标签) > 0 Then
- 文件夹中包含客户标签文件 = 文件.Name
- Exit Function
- End If
- Next 文件
- ' 未找到匹配的文件
- 文件夹中包含客户标签文件 = ""
- End Function
复制代码 |
|