我在Word中编写了一个宏,每次打开任何Word文档时它都能正常工作。我不知道这样做的原因是什么,我想问你为什么?
Private Sub Document_Open()
Dim fso As Object
Dim f As Object
Dim plik As Object
Dim sciezka As String
ActiveDocument.Content.Select
Selection.Delete
ActiveDocument.Select
sciezka = Application.ActiveDocument.Path & "\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(Application.ActiveDocument.Path)
For Each plik In f.Files
If Not Left(Right(plik.Name, 8), 4) = "rozp" And Right(plik.Name, 4) = ".pdf" Then
Selection.TypeText plik.Name
Selection.TypeParagraph
End If
Next plik
End Sub
答案 0 :(得分:-1)
您可能将其存储在normal.dotm文档中此代码将应用于所有文档。您应该移动它并将其存储在您正在处理的文档中的模块中。
编辑1:您创建了一个.docm文档,但是您确定将代码存储在docm文档中而不是normal.dotm文档中吗?
编辑2:我创建了一个单词test.docm文档,并将您的代码放在一个新模块中(在项目(测试) - >模块 - >模块1下)。然后我启动了代码,它在同一个文件夹中为每个文件创建了1个段落(让他们尊重你的IF条件中的检查)。然后,我在Project(Test) - >中转移了该代码。 Microsoft Word对象 - >这个文件;所以它在开幕时起作用。它与开幕时的预期完全相同。 最后,我测试了在同一文件夹中打开其他word文档(docx和docm),但代码没有运行。
我无法重现运行完全相同代码的问题。这强化了您在Normal下编写代码的想法 - > Microsoft Word对象 - >在VBA框架中的ThisDocument。
祝你有个美好的一天,
乔纳森。