未在For循环中设置对象变量

时间:2019-07-16 02:25:09

标签: vbscript

我正在尝试根据样式从Word文档中删除单词。例如,我想删除所有样式为“ Body_Text”的单词。

Set objWord = CreateObject("Word.Application")

Set objDoc = objWord.Documents.Open(file_in)
'* file_in exists and is defined

Set objSelection = objWord.Selection
Set colWord = objDoc.Words

For Each objWords In colWord
    If objWords.Style = "Body_Text" Then
        objWords.Select
        objSelection.Delete
    End If
Next

objDoc.SaveAs(file_out)
'* file_out is defined

objWord.Quit

运行此代码时,在语句中收到错误800A005B“未设置对象变量”

If objWords.Style = "Body_Text" Then

我希望删除file_out并删除“ Body_Text”样式的单词。

1 个答案:

答案 0 :(得分:0)

我不确定为什么会这样,但是有时objWords有时为空。

您可以轻松地在循环中添加测试以避免错误

For Each objWords in colWord
    If not objWords is Nothing Then '<< Check for nothing here to avoid error
        If objWords.Style = "Body_Text" Then
            objWords.Select
            objSelection.Delete
        End If
    End If
Next