Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


15 / 13645 ツリー ←次へ | 前へ→

【82330】指定回数分行をコピーして下に挿入する 迷える羊 24/7/24(水) 12:31 質問[未読]
【82331】Re:指定回数分行をコピーして下に挿入する マナ 24/7/24(水) 19:26 発言[未読]

【82330】指定回数分行をコピーして下に挿入する
質問  迷える羊  - 24/7/24(水) 12:31 -

引用なし
パスワード
   いつもお世話になっております。

シートに横並びに同じカテゴリの項目が入っており、
E列でそのカテゴリが何個あるのか数えています。
そしてその個数分縦に並べ直したい、というものです。
ただ、まだ縦に並べる前の段階、
コピーして挿入という箇所すら出来てません、

    E列 F列   G列   H列
1行目  3  いちご  みかん  メロン
2行目  2  バナナ  すいか
3行目  0
4行目  1  もも

    E列 F列   G列   H列
1行目  3  いちご
2行目  3  みかん
3行目  3  メロン
4行目  2  バナナ
5行目  2  すいか
6行目  0
7行目  1  もも

−−
Dim 数 As Long, i As Long
  
最終行 = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

On Error Resume Next
For 変数● = 最終行 To 1 Step -1
数 = Worksheets("Sheet1").Range(変数●, 5)
 For i = 0 To 数 - 1
  Worksheets("Sheet1").Rows(変数●).Copy
  Worksheets("Sheet1").Rows(変数● + 1).Insert
 Next i
Next 変数●
On Error GoTo 0
−−
どのようにしたら動きますでしょうか?

【82331】Re:指定回数分行をコピーして下に挿入する
発言  マナ  - 24/7/24(水) 19:26 -

引用なし
パスワード
   ▼迷える羊 さん:

Dim ws As Worksheet
Dim k As Long, n As Long

Set ws = Worksheets("Sheet1")
  
For k = ws.Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
  n = ws.Cells(k, 5).Value
  If n > 1 Then
    ws.Rows(k).Copy
    ws.Rows(k).Resize(n - 1).Insert
  End If
Next k

15 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free