|
▼ぱっせんじゃー さん:
おはようございます。
ちょっと気になったので・・・。
この方法は、
Join(MyArray, ","))
↑のセルアドレスの文字列が255文字を超えるとエラーになります。
(Excel2000、2002では確認しています)
2003ではどうでしょうか?(どなたか確認して見てください)。
>配列を使用した方法です。
>
>Sub test()
> Dim c As Range
> Dim MyRng As Range
> Dim i As Long
> Dim MyArray() As Variant
> If TypeName(Selection) <> "Range" Then Exit Sub
> Set MyRng = Selection
> i = -1
> For Each c In MyRng
> i = i + 1
> ReDim Preserve MyArray(0 To i)
> MyArray(i) = c.Address(0, 0)
> Next
> Range(Join(MyArray, ",")).EntireRow.Copy Worksheets(2).Cells(1, 1)
> Erase MyArray
>End Sub
よって、この方法を使うなら、255文字というリミットを意識したコードに
しなくてはなりませんね!!
以前、ここで検証したものです
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=16518;id=excel
|
|