Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : 指定なし)
セルの数値に応じてその下の行にコピーを挿入
投稿日時: 21/08/22 13:08:52
投稿者: Liz

初めて質問いたします。
よろしくお願いいたします。
  
特定のセルの数値に応じてその下の行にコピーを挿入したく、下記を参考に試してみたのですが最終行だけ対応できません。
 まだ何をどうしたらいいのか理解しておらず…。
 
ご教示のほどよろしくお願いいたします。
  
Option Explicit
  
Sub InsertRow1()
  
    Dim i As Long
    Dim intStart As Long
    Dim intCol As Long
    Dim cntBlank As Long
    Dim AddCnt As Long
    Dim msg_1 As String
  
  
  
    intStart = 2 '開始する行数
    intCol = 2 '数字を読み込む列
    i = intStart '追加する行数の先頭位置
    Dim j As Integer '追加する行数の中に既に空白行があったらその行数分
    Dim k As Long
  
    msg_1 = "B列に指定されている変数分追加しますか?"
  
    If MsgBox(msg_1, vbYesNo) = vbNo Then Exit Sub '行を追加してよいかのポップアップを出す
  
    Application.ScreenUpdating = False '処理終了まで画面表示はそのまま
  
    '最終行の1行上から上へ読み込む
    For i = Cells(Rows.count, intCol).End(xlUp).Row To intStart Step -1
        Select Case Cells(i, intCol).Value
        Case ""
            cntBlank = cntBlank + 1 '空白行カウント
        Case Is >= 2
            AddCnt = Cells(i, intCol).Value - cntBlank - 1 '追加する行数計算
            'AddCnt = Cells(i, intCol).Value - cntBlank - 1 '追加する行数計算
            If AddCnt > 0 Then
                Range(Rows(i + 1), Rows(i + AddCnt)).Select
                Selection.Insert '選択された行数分追加
                For k = 1 To AddCnt
                    Rows(i + k).Value = Rows(i).Value
                Next
            End If
            cntBlank = 0
        Case Else
            cntBlank = 0
        End Select
    Next i
  
    Application.ScreenUpdating = True
End Sub

回答
投稿日時: 21/08/22 16:02:10
投稿者: taitani

最終行というか、最終行から対応している見解です。
元のデータは、何か、どのよう可結果を望んでいるのか。
その辺を提示してみてはいかがでしょうか。

回答
投稿日時: 21/08/22 17:28:36
投稿者: コレ

 こんにちは。
 
 コードを表示させてから、F8ボタンを押して一行ずつ実行してみてはどうでしょうか?
 マウスカーソルを持っていくと変数の値も表示されますので、
ご希望の数値や動きになっているか確認をしてみるといいかと思います。
 
 私は、一度で問題なく動くコードが書けませんので、
一行ずつ確認したり、イミディエイトウィンドウを駆使して作っています。

投稿日時: 21/08/22 19:06:49
投稿者: Liz

ご返信ありがとうございます。
 
taitani様
仰る通りですね。最終行というよりデータのある1番下の行でした。
ありがとうございます。
 
コレ様
1つずつ確認していくのも勉強ですね。ゆっくり調べながら進めてみようと思います。
ありがとうございます。

投稿日時: 21/08/22 19:11:58
投稿者: Liz

閲覧してくださった皆様ありがとうございます。