编译错误语法错误Vba

时间:2018-05-07 20:14:52

标签: excel vba excel-vba

我编写的脚本用于运行一系列行,如果在其中找不到某些字符串,则删除每一行。我遇到的错误是当我运行脚本时出现错误

  

“编译错误语法错误”

并且(?:\w{2}|\w{1})at 行突出显示为有错误。

Instr

如果有人知道为什么会这样或有解决方案,那将非常感谢谢谢。

2 个答案:

答案 0 :(得分:0)

假设您已正确定义了WITH对象,看起来您只是错过了

中的空格
Then.Rows(Lrow).Delete

看起来应该是这样的

Then .Rows(Lrow).Delete

答案 1 :(得分:0)

您的代码看起来很好。完成对帖子的修改后,您将看不到错误。但我能够复制您发布的原始代码。你的问题是换行符" _"使用不破线。 "和"的原因由于这个原因,编辑器没有自动大写单词。

您的代码:

If InStr(.Cells(Lrow, "I").Value, "Removal") = 0 and _ InStr(.Cells(Lrow, "J").Value, "removal") = 0 and _ InStr(.Cells(Lrow, "J").Value, "removed") = 0 Then .Rows(Lrow).Delete

您可以使用一行:

Sub Testing()
    With ActiveSheet
        .Select
        ViewMode = ActiveWindow.View
        ActiveWindow.View = xlNormalView
        .DisplayPageBreaks = False
        Firstrow = .UsedRange.Cells(1).Row
        Lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
        For Lrow = Lastrow To Firstrow Step -1
        If InStr(.Cells(Lrow, "I").Value, "Removal") = 0 And InStr(.Cells(Lrow, "J").Value, "removal") = 0 And InStr(.Cells(Lrow, "J").Value, "removed") = 0 Then .Rows(Lrow).Delete
        Next Lrow
    End With
End Sub

或者如果您使用换行符" _"确保转到下一行。

Sub Testing()
    With ActiveSheet
        .Select
        ViewMode = ActiveWindow.View
        ActiveWindow.View = xlNormalView
        .DisplayPageBreaks = False
        Firstrow = .UsedRange.Cells(1).Row
        Lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
        For Lrow = Lastrow To Firstrow Step -1
        If InStr(.Cells(Lrow, "I").Value, "Removal") = 0 And _
            InStr(.Cells(Lrow, "J").Value, "removal") = 0 And _
            InStr(.Cells(Lrow, "J").Value, "removed") = 0 Then .Rows(Lrow).Delete
        Next Lrow
    End With
End Sub