特定单元格的VBA偏移量



我在一个给定的工作簿中有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为空,它可能仍然包含上一个循环的结果(

最新更新