Excel VBA与特定单元格的偏移量
我有超过200个工作表在一个给定的工作簿,并试图得到一些基于给定日期的价格。我试图使用Find方法搜索每张表中的A列(除了汇总表),以查找给定的日期,然后偏移4列以获得适当的价格。代码在Excel VBA与特定单元格的偏移量,excel,vba,Excel,Vba,我有超过200个工作表在一个给定的工作簿,并试图得到一些基于给定日期的价格。我试图使用Find方法搜索每张表中的A列(除了汇总表),以查找给定的日期,然后偏移4列以获得适当的价格。代码在fr=r.Offset(0,4).Value上失败,并给出对象变量或未设置块变量的错误。我曾尝试过调整代码和其他一些方法,但不断出现类似的错误 Sub fill() ActiveWorkbook.Worksheets("Summary").Activate Dim From_Date As
fr=r.Offset(0,4).Value
上失败,并给出对象变量或未设置块变量的错误。我曾尝试过调整代码和其他一些方法,但不断出现类似的错误
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
Sub-fill()
活动工作簿。工作表(“摘要”)。激活
从日期变为变量的Dim
Dim到_日期作为变量
起始日期=范围(“A2”)。值
截止日期=范围(“A1”)。值
Dim rng As工作表
作为变体的Dim-fr
Dim tr作为变体
Dim pct作为变体
调光范围
对于ActiveWorkbook.工作表中的每个rng
如果名称为“摘要”,则
启动
设置r=范围(“A:A”)。查找(截止日期)
fr=r.偏移量(0,4).值
如果结束
下一个rng
端接头
您需要检查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
为空,它可能仍然包含上一个循环的结果)当Fing方法未找到任何内容时,它将返回Nothing
。因此,您需要使用捕捉这种情况,如果r不是零,那么fr=r.Offset(0,4)。。。如果