[[20120104162824]] 『セルの数値分だけ行の挿入』(初心者) >>BOT

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

 

『セルの数値分だけ行の挿入』(初心者)

 A列にある各セルに数値が入っていて、
 例えば、A2に1と入っていれば、その直下に1行を挿入し、
 セルA5に6という数値があれば、A5の直下に6行追加挿入することを
 マクロで行いたいです。

 どなたかお手数ですが、ヒントを頂けたら、ありがたいです。
 宜しくお願いします。

 Windows 7
 Excel2007

 A列の最終行を取得して、そこから一行目まで各セルの値が正の整数であれば
 行を挿入しながらLoopする。
 とか?
 (seiya)

 Sub cinsert()
    Dim i As Long
    For i = Cells(Rows.count, 1).End(xlUp).Row To 1 Step -1
        With Cells(i, 1)
            If VarType(.Value) = vbDouble And .Value > 0 Then
                If CLng(.Value) = .Value Then
                    Rows(i + 1 & ":" & i + .Value).Insert Shift:=xlDown
                End If
            End If
        End With
    Next
End Sub
(beginner)

 Rows, Columns のInsert method の Shift 引数は xlDown/xlToRight 以外は無視されるんだよね。
 以下は、正の値であれば小数を切り捨てた値で行を挿入。
 Sub test()
Dim i As Long, temp As Long
For i = Range("a" & Rows.Count).End(xlUp).Row To 1 Step -1
    temp = Fix(Val(Cells(i, "a").Value))
    If temp > 0 Then Rows(i + 1).Resize(temp).Insert
Next
End Sub
(seiya)

 >Rows, Columns のInsert method の Shift 引数は xlDown/xlToRight 以外は無視されるんだよね。
 seiyaさんのご指摘有難うございます。有ったほうが確実かなぁと思っていましたが無視されちゃいますね。これからもよろしくお願いします。(beginner)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.