[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『行数の取得と挿入』(シェフかわごぇ)
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.