VBA-上次出现重复代码时出现错误91

VBA-上次出现重复代码时出现错误91,vba,Vba,我正在构建一个子例程,其中有一个3行的块,用不同的输入重复了3次,它在大多数情况下都能很好地工作,但在最后一行给出了一个错误91。。。这是其他双胞胎中的一个 代码如下: Dim calliper_d, calliper_V, T_log_ini_d, T_log_ini_T, T_log_fin_d, T_log_fin_T As Range Dim caliper_end_index, T_log_ini_end_index, T_log_fin_end_index As Double '

我正在构建一个子例程,其中有一个3行的块,用不同的输入重复了3次,它在大多数情况下都能很好地工作,但在最后一行给出了一个错误91。。。这是其他双胞胎中的一个

代码如下:

Dim calliper_d, calliper_V, T_log_ini_d, T_log_ini_T, T_log_fin_d, T_log_fin_T As Range
Dim caliper_end_index, T_log_ini_end_index, T_log_fin_end_index As Double 

'Gets the index of the last non empty cell in the corresponding column
caliper_end_index = Application.WorksheetFunction.Match(Worksheets("Main").Range("O4").End(xlDown).Value, Worksheets("Main").Range("O4").EntireColumn.Value, 1)
'Using this index, get the whole first column and the second column up to that point*
calliper_d = Worksheets("Main").Range("O4:O" & caliper_end_index)
calliper_V = Worksheets("Main").Range("Q4:Q" & caliper_end_index)

'same with an other data table
T_log_ini_end_index = Application.WorksheetFunction.Match(Worksheets("Main").Range("K4").End(xlDown).Value, Worksheets("Main").Range("K4").EntireColumn.Value, 1)
T_log_ini_d = Worksheets("Main").Range("K4:K" & T_log_ini_end_index)
T_log_ini_T = Worksheets("Main").Range("L4:L" & T_log_ini_end_index)

'same with an other data table
T_log_fin_end_index = Application.WorksheetFunction.Match(Worksheets("Main").Range("AE4").End(xlDown).Value, Worksheets("Main").Range("AE4").EntireColumn.Value, 1)
T_log_fin_d = Worksheets("Main").Range("AE4:AE" & T_log_fin_end_index)
T_log_fin_T = Worksheets("Main").Range("AF4:AF" & T_log_fin_end_index) 'this is where I get an error
*我用于测试的列大小相同 翻开局部变量选项卡,我注意到由于某种原因,T_log_fin_end_索引被注册为Double,而其他两个是Variant/Double。。。这并不能解释它对t_log_fin_d有效而对t_log_fin_t无效这一事实

我还检查了测试数据,没有问题(没有空单元格,没有“.”而不是“,”…)。只是有很多行真正的正数


提前感谢您的帮助

尝试使用工作表(“Main”).Range(“K400000”).End(xlup)。值同时
调暗卡钳d、卡钳V、T_log_ini_d、T_log_ini_T、T_log_fin_d、T_log_fin_T As Range
不能定义所有As Range,只能定义最后一个
T\u log\u fin\u end\u index
,我认为最好用作longI。我认为您试图将数组放入非数组中,这是索引大于4的第一个吗?
T\u log\u fin\u index
是一个
范围
对象引用。必须使用
Set
关键字指定对象引用。此外,您声明的变量中只有2个具有显式类型,其余的都是隐式
变量
。啊,是的,谢谢!这就解决了问题。当然,我得到了更多的错误,但与此无关——所以案件结束了。