[[20120509114139]] 『行数の取得と挿入』(シェフかわごぇ) ページの最後に飛ぶ

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

 

『行数の取得と挿入』(シェフかわごぇ)

Sheet1の3行目から下にランダムで行数の変わるファイルがあります。

このSheet1が3行目から何行目まであるかを取得して、

その行数分をSheet2の11行目と12行目の間に挿入して増やしたいと思っています。

よろしくお願いします。

Excel2002 

WindowsXP


 Sub 行挿入()

     Dim lngRow As Long

     lngRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

     Sheets("Sheet1").Rows("3:" & lngRow).Copy
     Sheets("Sheet2").Rows(12).Insert Shift:=xlDown
     Application.CutCopyMode = False

 End Sub

 のような感じでしょうか?

 (se_9)


 衝突したけど、書いたので。

 まず、行数の取得の部分のサンプル。
 それぞれ一長一短があるので、シートの実態に合わせて適したものを。

 Sub Test1()
    '行の状態がどうなっているか全くわからないケース

    'ただし!!
    '書式の設定のみのセルもデータがあると認識されてしまう。

    Dim mRow As Long
    With Sheets("Sheet1")
        mRow = .UsedRange.Cells(.UsedRange.Cells.Count).Row
        MsgBox "最終行は " & mRow & " 行目で、行数は " & mRow - 2 & " 行でした"
    End With
 End Sub

 Sub Test2()
    'データ件数をどこかの列、たとえばA列で判定できる場合。
    'A列には3行目から空白無くデータがあるケース

    'ただし!!
    'A3にしか値がない場合、エクセル最終行が取得されてしまう。

    Dim mRow As Long
    With Sheets("Sheet1")
        mRow = .Range("A3").End(xlDown).Row
        MsgBox "最終行は " & mRow & " 行目で、行数は " & mRow - 2 & " 行でした"
    End With
 End Sub

 Sub Test3()
    'データ件数をどこかの列、たとえばA列で判定できる場合。
    'A列には3行目から空白ありうる(無くでもいい)あるケース

    'ただし!!
    'A3も含めて全くデータがない場合、1行目ないしは2行目が取得されてしまう。

    Dim mRow As Long
    With Sheets("Sheet1")
        mRow = .Range("A" & .Rows.Count).End(xlUp).Row
        MsgBox "最終行は " & mRow & " 行目で、行数は " & mRow - 2 & " 行でした"
    End With
 End Sub

 Sub Test4()
    'データ件数を把握すべきリストの列を全てチェックして最大の行番号を
    '取得するタイプ。普通は、ここまでやらないねぇ。
    'たとえばA列:L列が判定すべき領域だとすると
    Dim z As Long
    Dim mRow As Long
    Dim j As Long
    With Sheets("Sheet1")
        For j = 1 To 12 'A列〜L列
            z = .Cells(.Rows.Count, j).End(xlUp).Row
            If z > mRow Then mRow = z
        Next
        MsgBox "最終行は " & mRow & " 行目で、行数は " & mRow - 2 & " 行でした"
    End With
 End Sub

 (ぶらっと)

コメント返信:

[ 一覧(最新更新順) ]


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