VBScript编译错误:预期语句

时间:2019-09-02 12:41:11

标签: vbscript

编译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

1 个答案:

答案 0 :(得分:0)

我在您的脚本中看到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