我想要一段代码,允许我打开放在文件夹中的3个文档 - 每次打开文档时我都希望有一个显示文件名的消息框。我想通过For Each Next结构来完成这个循环。
我知道application.documents.open filename:="链接到文件"是我需要使用的代码,但我无法将它组合在一起。
Option Explicit
Sub openthrice()
Application.Documents.Open FileName:="C:\Users\John\Desktop\New folder\Doc1.docx"
End Sub
答案 0 :(得分:0)
尝试将其作为10的入门者,它将打开文件并在消息框中显示文件路径,并将进一步简化回复...
Dim StrFile As String
StrFile = Application.GetOpenFilename
Workbooks.Open (StrFile), UpdateLinks:=False
MsgBox StrFile
答案 1 :(得分:0)
此方法需要引用 Windows脚本宿主对象模型。要从VBA菜单中添加选择工具,然后选择参考。引用按字母顺序列出。
' Requires reference: Windows Script Host Object Model.
Sub FindFile()
Const ROOT_DIR As String = "C:\MI\Example" ' Update with your folder.
Dim fso As FileSystemObject ' Used to read from file system.
Dim fle As File ' Used to loop over files.
' Ready object variable for use.
Set fso = New FileSystemObject
' Loop over files.
For Each fle In fso.GetFolder(ROOT_DIR).Files
If fle.Name Like "*.docx" Then Application.Documents.Open fle.Name
Next
' Release object vars before they leave scope.
Set fso = Nothing
End Sub
FileSystemObject是一个功能强大的类,由Microsoft提供。它允许您的代码与Windows文件系统进行交互。
修改强>
错误用户定义的类型未定义表示编译器无法识别您的数据类型。在这种情况下,它不知道FileSystemObject
是什么,因此无法创建该类型的变量fso
。要修复它需要上面提到的参考。这包含定义,告诉VBA fso是什么,以及它是如何工作的。
从菜单条中,您可以点击工具>>选中引用并仔细检查 Windows脚本宿主对象模型(选定的引用应位于顶部,其余引用按字母顺序列出)。