自己解決しました。
- 2つの行変数row1,row2を定義して使用すること、
- 空欄部分があってもプログラムを終了しないように
"Cells(Rows.Count, 1).End(xlUp).row"
を使用することで解決しました。
Excel
1Public Sub uRunWork04()
2 Dim row1 As Integer
3 Dim row2 As Integer
4 Dim row1_max As Integer
5 Dim s As String
6
7 Dim ap As Excel.Application
8 Dim wb As Workbook
9 Dim ws As Worksheet
10 Set ap = GetObject(, "Excel.Application")
11 Set wb = ap.ThisWorkbook
12 Set ws = wb.Worksheets("_work04")
13
14 ws.Activate
15 '最終行を取得
16 row1_max = Cells(Rows.Count, 1).End(xlUp).row
17
18 'D:F列クリア
19 ws.Range("D1:F2000").Select
20 Selection.ClearContents
21 ws.Range("A1").Select
22
23 row2 = 1
24 For row1 = 1 To row1_max
25
26 s = ws.Cells(row1, 3)
27 If s = "" Then
28 row2 = row2 + 2
29 Else
30 ws.Cells(row2, 7).Value = s + "_H"
31 row2 = row2 + 1
32 ws.Cells(row2, 7).Value = s + "_L"
33 row2 = row2 + 1
34 End If
35
36 Next
37
38 Set ws = Nothing
39 Set wb = Nothing
40 Set ap = Nothing
41End Sub
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。