[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの数値分だけ行の挿入』(初心者)
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.