VBA 任意のシートからコピーを始める。
教えてください。
全てのシートをコピーして一つのシートにまとめるプログラムシートを作成しました。
1番目のシートからコピーを始める場合は
For i = 2 To Worksheets.Count
2番目のシートからコピーを始める場合は
For i = 3 To Worksheets.Count
とすればよいのですがこれだといちいちモジュールコードを出して数字を変更しなければならず面倒です。
そこでユーザーフォームのコンボボックスに任意の数字を入れてクリックを押せば希望するシートからコピーを始めるプログラムを作成してみましたがうまくいきません。どなたか教えてくださいませんか。
Sub matome()
Dim i As Integer
Dim lRow As Long, lCol As Long, lRow2 As Long, lRow3 As Long, SNo As Integer
'----何番目からコピーを始めるかを決定します
With UserForm2
SNo = .ComboBox1.value
End With
For i = 1 + SNo To Worksheets.Count
With Worksheets(i)
lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
lCol = .Cells(1, Columns.Count).End(xlToLeft).Column
'----シートのデータが2行以上の場合にコピーします
If lRow >= 2 Then
lRow2 = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1
If lRow2 < Worksheets(1).Cells(Rows.Count, 5).End(xlUp).Row + 1 Then lRow2 = Worksheets(1).Cells(Rows.Count, 5).End(xlUp).Row + 1
.Activate
.Range(Cells(2, 1), Cells(lRow, lCol)).Copy Worksheets(1).Cells(lRow2, 1)
End If
End With
Next i
お礼
できました! 勉強になりました。ありがとうございました。