|
▼はってんちゅう さん:
>ちなみに、Do Loop系のものは、私が最初に書いたように連続して
>使用はできないということでしょうか。
Try2() の For〜Next Sampleを そのままDo〜Loopにすることはできます。
ただ、Loopの終了値があらかじめ分かっているばあいは
For〜Nextのほうがスマートですけど。
Sub DoLoop_Sample()
Dim j As Long
Dim sNew As String
Dim sOld As String
'ユニット毎合計作る
If MsgBox("ユニット別合計を作成しまぁす ☆ ", vbOKCancel) _
= vbCancel Then
MsgBox "中止しました"
Exit Sub
End If
j = Cells(8, Columns.Count).End(xlToLeft).Column '8行目の最終列番号
Do
sNew = Cells(8, j).Value
If sOld <> sNew Then
sOld = sNew
Columns(j + 2).Insert
End If
j = j - 2 '2列 左へ
Loop Until j <= 2
End Sub
>
>私の方法が間違っている理由がお判りでしたら、教えていただけますか。
結局、i=4 で第1回目のLoopをはじめ、
2列づつ調べていって ある列が "SY-A" で
(i+2)列目が "SY-F" のとき i+2列目を挿入しますよね?
そうすると、つぎの「ある列が "SY-F" で (その+2列目)が "SR-B" である」
ような列は 1列挿入しているから、偶数列ではなく、奇数列になりますよね?
このように 行挿入すると、最初の番号関係がダイナミックに変わっていくので
単純にはいかないのです。
|
|