我编写的脚本用于运行一系列行,如果在其中找不到某些字符串,则删除每一行。我遇到的错误是当我运行脚本时出现错误
“编译错误语法错误”
并且(?:\w{2}|\w{1})at
行突出显示为有错误。
Instr
如果有人知道为什么会这样或有解决方案,那将非常感谢谢谢。
答案 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