|
表の中にデータの管理担当ごとに集計用のコラム挿入を行うためのモジュールを作っています。
Do Loop を使っています。
問題は、
3つの Do Loop を続けて並べ、実行すると最初のDo Loopしか反応しません。
各一つずつの実行は問題なく意図した通りになるのですが。
どうすれば3つとも実行されるようになるのでしょうか。
どうぞよろしくご教示ください。お願いいたします。
以下はその作ったものの条件です。
1.8行目に各コラムにあるデータの担当先が明記。
ただし、一つの製品に対し2つのコラムを使用しているので、管理担当先は一つ置きに明記となっている。
(例:DEが一製品分でDのみに管理担当者明記、FGが一製品分でFにのみ管理担当者明記となっている)
2.9行目にはすべてのコラムに言葉が入っているので、条件として9行目セルに言葉がなくなったら、LOOP終了とした。
3. 管理担当者はとりあえず3社:S-A / S-F / S-B
それで作ったものが以下。
Dim i As Integer
Dim j As Integer
Dim x As Integer
Dim y As Integer
Dim m As Integer
Dim n As Integer
Dim z As Range
Dim firstaddress As String
'ユニット毎合計作る
rtn = MsgBox("ユニット別合計を作成しまぁす ☆ ", vbOKCancel)
If rtn = vbOK Then
Windows("損益付替表作成.xls").Activate
i = 4 'Column ユニット名用
j = 4
Do
If Cells(8, i) = "SY-A" Then
If Cells(8, i + 2) = "SY-F" Then
Columns(i + 2).Select
Selection.Insert Shift:=xlToRight
Cells(8, i + 2).Select
End If
i = i + 2
j = j + 1
End If
i = i + 2
j = j + 1
Loop Until Cells(9, j) = ""
x = 4 'Column ユニット名用
y = 4
Do
If Cells(8, y) = "SY-F" Then
If Cells(8, y + 2) = "SR-B" Then
Columns(y + 2).Select
Selection.Insert Shift:=xlToRight
Cells(8, y + 2).Select
End If
y = y + 2
x = x + 1
End If
y = y + 2
x = x + 1
Loop Until Cells(9, x) = ""
m = 4 'Column ユニット名用
n = 4
Do
If Cells(8, n) = "SR-B" Then
If Cells(8, n + 2) = "" Then
Columns(n + 2).Select
Selection.Insert Shift:=xlToRight
Cells(8, n + 2).Select
End If
n = n + 2
m = m + 1
End If
n = n + 2
m = m + 1
Loop Until Cells(9, m) = ""
Else
MsgBox "中止しました"
Exit Sub
End If
MsgBox "Fin Unit Total"
|
|