VBA for Excel 2010中行和列偏移的最大值是多少?

VBA for Excel 2010中行和列偏移的最大值是多少?,excel,vba,overflow,offset,Excel,Vba,Overflow,Offset,我知道这里也回答了一个类似的问题: 但是,该错误似乎与Excel 2003工作表中的行数有关。因为我运行的是Excel 2010(65536行),所以我认为我的错误与我的工作表大小无关 下面是一行代码,该代码导致运行时错误“6”溢出: Range("OutputStart").Offset(1 + (iCounter1 - 1) * iDataPoints * 26 + iCounter2 * iDataPoints, 0).PasteSpecial Paste:=xlPasteValues,

我知道这里也回答了一个类似的问题:

但是,该错误似乎与Excel 2003工作表中的行数有关。因为我运行的是Excel 2010(65536行),所以我认为我的错误与我的工作表大小无关

下面是一行代码,该代码导致运行时错误“6”溢出:

Range("OutputStart").Offset(1 + (iCounter1 - 1) * iDataPoints * 26 + iCounter2 * iDataPoints, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
iCounter1是一个整数,其值为13 iDataPoints是一个整数,其值为103 icounter2是一个整数,其值为7

行偏移量计算的结果为32858,表示整数数据类型问题。行偏移量是否仅限于整数数据类型?如果是这样,有没有办法将限制改为Long(或其他数据类型)

谢谢你能提供的任何帮助


Will

不使用整数:它们是16位有符号值;它们的范围是-32768到32767。这就是为什么你会收到溢出


改为使用长整数。

VB中的整数为16位。使用无符号整数;或者更理想地说,一个长期的

Range将可选变量作为参数,如果输入的是数值数据,则会保留数值数据


若要将数字转换为长的,只需将其包装在
CLng(yourname)
中,或者如果您的数字变大,则使用
CDbl(yournum)
将其转换为双精度,是吗?即使在64位机器上,VBA整数也是16位!