我正在尝试从Excel中的条目替换word文档中的文本。当我运行没有标签for-loop的代码时(这意味着单个标签 - 值组合)它正常工作。但是,我在外部标记循环中插入wdDoc.StoryRanges
循环我收到错误
"对象变量或未设置块变量"
尽管在外循环之前设置了wdDoc
值。
你们任何人都可以提供建议。
非常感谢!
Public Function Test(filepath as String) As Variant
counter = 0
Dim wdApp As Object
Dim wdDoc As Object
Set wdApp = CreateObject("word.application")
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Open(filePath)
For Each tag In tags
counter = counter + 1
If Len(tag) > 0 Then
Dim wdRng As Word.Range
For Each wdRng In wdDoc.StoryRanges <-- [I am getting the error here]
With wdRng.Find
.Text = tag
.Highlight = True
With .Replacement
.Text = values(counter, 1)
.Highlight = False
End With
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
Set wdApp = Nothing: Set wdDoc = Nothing: Set wdRng = Nothing
Next wdRng
End If
Next tag
End Function
答案 0 :(得分:1)
该错误通常意味着未设置变量。如果你在wdDoc.StoryRanges中添加一个观察者,你可能会看到是否设置了该变量。或者甚至可能没有设置wdRng,那么你可能不得不使用计数器索引,并使用while循环来完成你的任务。