我在一个给定的工作簿中有200多个工作表,并试图根据给定的日期获得一些价格。我试图使用Find方法搜索每张表中的A列(除了Summary表(,以找到给定的日期,然后偏移4列以获得合适的价格。该代码在fr = r.Offset(0, 4).Value
上失败,并给出Object变量或With块变量未设置错误。我尝试过调整代码并采取其他一些方法,但总是出现类似的错误。
Sub fill()
ActiveWorkbook.Worksheets("Summary").Activate
Dim From_Date As Variant
Dim To_Date As Variant
From_Date = Range("A2").Value
To_Date = Range("A1").Value
Dim rng As Worksheet
Dim fr As Variant
Dim tr As Variant
Dim pct As Variant
Dim r As Range
For Each rng In ActiveWorkbook.Worksheets
If rng.Name <> "Summary" Then
rng.Activate
Set r = Range("A:A").Find(To_Date)
fr = r.Offset(0, 4).Value
End If
Next rng
End Sub
您需要检查Find()
方法的结果,如下所述:
Set r = Range("A:A").Find(To_Date)
If Not (r Is Nothing) Then
fr = r.Offset(0, 4).Value
...
End If
(注意不要使用fr
,如果r
为空,它可能仍然包含上一个循环的结果(