[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『同行A列B列の値が違う場合に、数値の差分行追加を表の全体で』(ひろしげ)
A B 1行 1 2行 2 3行 3 6 4行 7 5行 8 6行 9 10 7行 11
表は上記のような感じです。
これが最終的に下記のようになるようにしたいです。
A B 1行 1 2行 2 3行 3 4行 4 5行 5 6行 6 7行 7 8行 8 9行 9 10行 10 11行 11
VBAもプログラミング自体も初心者です。
本来の表は500行くらいあります。
行数を Range("A1").End(xlDown).Row
で指定して書いていたのですが、行を追加するごとに行数が増えていってしまうので
初めに行数を指定するプログラムでは対応できないのではと気づきました…。
あとそもそもセル内の数値を引用して値の差だけ行を挿入する方法が分りません…。
すみませんが、よろしくお願いします。
< 使用 Excel:Excel2011(Mac)、使用 OS:Windows10 >
参考に
Sub Test() Dim i As Long, n As Long
For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 If Cells(i - 1, "B").Value > 0 Then n = Cells(i - 1, "B").Value - Cells(i - 1, "A").Value Cells(i - 1, "B").ClearContents Cells(i, "A").Resize(n).EntireRow.Insert Shift:=xlDown Cells(i - 1, "A").AutoFill Destination:=Cells(i - 1, "A").Resize(n + 1), Type:=xlFillSeries End If Next End Sub
(ピンク) 2020/05/12(火) 15:41
下から処理を行っていくのは定石なのですね。先ほど調べて分かりました…。
Step -1
.Resize
AutoFill
など私には難しい内容ばかりでしたが、調べてなんとか理解できました。
本当にありがとうございました!
(ひろしげ) 2020/05/12(火) 20:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.