最終行がわからない場合
エクセルです。
・最終行は毎回違ってくるので
Cells(Rows.Count, "A").End(xlUp).Row
で取得したいです。
・今は最終行が51行という前提で作業をしています。
・1行目にはタイトルが入っています。
・2行目以降には文字が入っています。
今回はテストのため数字を入れました。
最終行が51の場合は
************************************************
Sub test1()
Dim i As Long
Dim cnt As Long
For i = 1 To 10
Call test2
Next
End Sub
--------------------
Sub test2()
Dim str As String
If cnt = 0 Or cnt = 42 Then
cnt = 2
ElseIf cnt = 2 Then
cnt = cnt + 10
ElseIf cnt = 12 Then
cnt = cnt + 10
ElseIf cnt = 22 Then
cnt = cnt + 10
ElseIf cnt = 32 Then
cnt = cnt + 10
End If
With Sheets("Sheet1")
For myRow = cnt To cnt + 9
str = str & "," & .Cells(myRow, 1)
Next myRow
End With
Debug.Print str
End Sub
************************************************
このような方法で、str に10個ずつセルの値を格納できるのですが
最終行が不明の場合はどうすればいいのでしょうか?
イミディエイトウインドウに表示される値は
,1,2,3,4,5,6,7,8,9,10
,11,12,13,14,15,16,17,18,19,20
,21,22,23,24,25,26,27,28,29,30
,31,32,33,34,35,36,37,38,39,40
,41,42,43,44,45,46,47,48,49,50
,1,2,3,4,5,6,7,8,9,10
,11,12,13,14,15,16,17,18,19,20
,21,22,23,24,25,26,27,28,29,30
,31,32,33,34,35,36,37,38,39,40
,41,42,43,44,45,46,47,48,49,50
です。
最終行まで来たらまた2行目から取得しなおします。
なのでIf cnt = 0 Or cnt = 42 Thenにしました。
最終行が60だったり65だったりした場合は、strに10個格納できないですが、少ない分には問題ないです。
これで、最終行が100でも200でも対応できるコードを作りたいのですが
わかりません。
お知恵を拝借願います。
お礼
redfox63さん、ありがとうございます。 うまいくいきました。