VBScript compilation error: Expected statement

VBScript compilation error: Expected statement

我在编译 VBScript 时遇到错误,会删除 RTF 文件中的特定行。错误指向第 6 行,字符 25,它是 "Selection.GoTo What:=wdGoToBookmark" 语句中的 '=' 符号,但我认为语法是正确的。


错误信息

行:6 字符:25

错误:预期语句

代码:800A0400

来源:Microsoft VBScript 编译错误

Set Word = CreateObject("Word.Application")
Set wordfile = Word.Documents.Open("filename.RTF")
Word.Visible = TRUE

Sub Macro1()
    Selection.GoTo What:=wdGoToBookmark, Name:="IDX12"
    With ActiveDocument.Bookmarks
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
    Selection.MoveUp Unit:=wdLine, Count:=2
    Selection.Delete Unit:=wdCharacter, Count:=1
    ActiveDocument.Save
End Sub


Macro1
Word.Quit

我发现您的脚本存在 3 个主要问题。

  • 不幸的是,VBScript 不支持命名参数(而 VBA 支持)。因此,您必须列出方法
  • 的所有 null 个参数
  • 您使用某些对象(SelectionActiveDocument ...),就好像它们是可用的一样。它们不是:它们是 Word.Application 对象的属性。
  • 上一期:你用的常量也是vbs不知道的。因此,要么声明它们,要么使用它们的 Word 内部值。

    Set Word = CreateObject("Word.Application")
    ' !! You also might meet a problem here because you don't use the file full path. The file may not be found !!
    Set wordfile = Word.Documents.Open("filename.RTF")
    Word.Visible = TRUE

    Sub Macro1()
        'Word.Selection.GoTo What:=wdGoToBookmark, Name:="IDX12"
        Word.Selection.GoTo -1, , , "IDX12"
        With Word.ActiveDocument.Bookmarks
            '.DefaultSorting = wdSortByName
            .DefaultSorting = 0
            .ShowHidden = False
        End With
        'Word.Selection.MoveUp Unit:=wdLine, Count:=2
        Word.Selection.MoveUp 5, 2
        'Word.Selection.Delete Unit:=wdCharacter, Count:=1
        Word.Selection.Delete 1, 1
        Word.ActiveDocument.Save
    End Sub

    Macro1
    Word.Quit