使用Range时的应用程序定义或对象定义错误

时间:2012-10-12 05:18:34

标签: vba excel-vba excel

下面第二行代码抛出了上述错误:

Dim rng As String
rng = Range(Cells(2, 1), Cells(4000, 302)).Address

* 第302列是固定的,是我必须复制的选择的结束列。

我发现奇怪的是用 255或更低替换302以消除错误并使我的程序能够正常工作。

我不明白的另一件事是;使用立即窗口----在列参数上有255个打印 $ A $ 2:$ IU $ 4000 ,应该如此。但是,用 256 替换 $ 2:$ 4000 ,而我认为应该 $ A $ 2:$ IV $ 4000 。上面的任何数字都会导致相同的错误。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

好的,从评论延伸:

对于您的第一个问题,由于您使用Excel< = 2003(来自评论),您的“尾部”列将为IV,即#256,

因此,您最大的可用列数为256,调用Cells(4000,302)将超出范围。


对于第二个问题,由于您使用的是Excel< = 2003,因此一行最多只能包含256列,

所以选择A2:IV4000(第2行到#4000,第1列到#256)实际上等于选择2:4000(完整行选择,第2行到#4000)和Excel “缩短”那个地址给你。