2

以下のコードの2行目は、上記のエラーをスローしています。

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

* 302番目の列は固定されており、コピーする必要がある選択範囲の最後の列です。

私が奇妙だと思うのは、302を255以下に置き換えると、エラーがなくなり、プログラムが機能するようになることです。

私が理解していないもう一つのことは、イミディエイトウィンドウを使用する----列パラメータに255があると、必要に応じて$ A $ 2:$ IU$4000が出力されます。ただし、 256に置き換えると$ 2:$ 4000がスローされますが、 $ A $ 2:$ IV$4000になるはずです。上記の数値は同じエラーになります。

ここで何が欠けていますか?

4

1 に答える 1

1

了解しました。コメントから拡張します。

最初の質問では、Excel <= 2003(コメントから)を使用しているため、「テール」列はIV、#256になります。

したがって、使用可能な最大の列番号は256であり、呼び出しCells(4000,302)は範囲外になります。


2番目の質問では、Excel <= 2003を使用しているため、1行に含めることができるのは最大256列のみです。

したがって、A2:IV4000(行#2から#4000、列#1から#256)を選択することは、実質的に2:4000(完全な行選択、行#2から#4000)を選択することと同じであり、Excelはそのアドレスを「短縮」します。

于 2012-10-12T08:24:34.803 に答える