运行宏时,我收到了一个对象变量错误。
Object Variable or with block variable not set
第二次运行宏时会发生这种情况。以下是导致错误的代码:
' Select the first Junk Row and use it to delete all rows afterward
With ActiveSheet
LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
End With
With Columns("F")
.Find(What:="Total", After:=.Cells(1, 1), LookIn:=xlValues).Activate - **Error occurs here.**
End With
A = ActiveCell.Row
Range(A & ":" & LastRow).Delete
任何建议都将不胜感激。如果我关闭程序,它下次运行正常。
谢谢, 斯科特
答案 0 :(得分:1)
首次运行代码时,会删除底部行,包括包含“总计”的行。第二次运行代码失败,因为第一次传递删除了“Total”
答案 1 :(得分:0)
在激活单元格之前。检查.find是否找到了这个单元格是好的。下面就是一个例子。
<强>测试强>
Sub testing()
Dim rng As Range
With ActiveSheet
LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row
End With
With Columns("F")
Set rng = .Find(What:="Total", After:=.Cells(1, 1), LookIn:=xlValues)
End With
If Not rng Is Nothing Then
A = rng.Row
Range(A & ":" & LastRow).Delete
Else
MsgBox ("Total not found")
End If
End Sub
答案 2 :(得分:0)
尝试并替换
.find (...).activate
由:
.find (...).select
即使我不同意使用select / activate。
最简单的是
A= .find (....) .row
'might return 0 or <nothing> or error , if no match ( .match is faster by the way)