【发布时间】:2022-01-25 17:23:00
【问题描述】:
我有一本带有多张纸的工作簿。
在我的第二张工作表上,我有一个运行良好的小宏,但如果我想运行它,而我在另一张工作表上,excel vba 会向我显示一个错误并且它不起作用。
这是我的代码:
Dim myDate As Variant, rng As Range
Dim lastRow As Integer, penultimateRow As Integer
Set rng = Range("A1:A207")
Set myDate = rng.Find(What:=Int(Date), LookIn:=xlFormulas)
Worksheets("Lernzeit-Tracking").Cells(myDate.Row, myDate.Column + 1).Value = _
Worksheets("Übersicht").Range("L20").Value
With Worksheets("Lernzeit-Tracking")
penultimateRow = .Cells(.Cells(Rows.Count, 2).End(xlUp).Row, 2).End(xlUp).Row
lastRow = .Cells(Rows.Count, 2).End(xlUp).Row
End With
If IsEmpty(Sheets("Lernzeit-Tracking").Cells(lastRow - 1, 2)) = True Then
Sheets("Lernzeit-Tracking").Range(Cells(penultimateRow + 1, 2), Cells(lastRow - 1, 2)).Value = 0
End If
错误消息说:
“未设置对象变量”
和线
Worksheets("Lernzeit-Tracking").Cells(myDate.Row, myDate.Column + 1).Value == Worksheets("Übersicht").Range("L20").Value
被标记
如何在另一张纸上运行我的宏?
【问题讨论】:
-
该行包含不合格的范围引用。通过扩展
With块来限定它们 -
另外,当您使用
.Find时,您需要检查它之后的结果,以确保它不会返回Nothing,然后才能使用它。如果myDate什么都不是,你就不能像使用它一样使用它。