[[20200512125829]] 『同行A列B列の値が違う場合に、数値の差分行追加を』(ひろしげ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『同行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.