
【やりたい事】
標題の件、以下マクロをご覧ください
AブックのA6からA100までのセルを
BブックのA2からA100までコピーしています
しかし、Aブックには実際には、A5やA10まで
しかデータが入っていません
データの数は、その時々にて、変わります
そこで、Aブックのデータが入っている所までを
きれいにコピーして、Bブックへコピーするマクロを作りたいです
ご存じの方、ご指導お願いします
Sub コピー()
Workbooks(B.xlsm").Worksheets("リスト").Range("A2:A100").Value = Workbooks("A.xlsx").Worksheets("Sheet1").Range("A6:A100").Value
End Sub
No.5
- 回答日時:
以下のようにしてください。
Sub コピー()
Dim fr_ws As Worksheet
Dim to_ws As Worksheet
Set fr_ws = Workbooks("A.xlsx").Worksheets("Sheet1")
Set to_ws = Workbooks("B.xlsm").Worksheets("リスト")
Dim maxrow As Long
Dim fr_row As Long
Dim to_row As Long: to_row = 2
maxrow = fr_ws.Cells(Rows.Count, 1).End(xlUp).Row
If maxrow < 6 Then Exit Sub
to_ws.Rows("2:" & Rows.Count).ClearContents
For fr_row = 6 To maxrow
to_ws.Cells(to_row, 1).Value = fr_ws.Cells(fr_row, 1).Value
to_row = to_row + 1
Next
End Sub
No.4
- 回答日時:
>AブックのA6からA100までのセルを
>BブックのA2からA100までコピーしています
コピー先(Bブック)のデータの開始行は2行目からで間違いないでしょうか。
コピー元(Aブック)のデータの開始行は6行目からのように思われます。
>しかし、Aブックには実際には、A5やA10までしかデータが入っていません
もし、A5までしかデータがないときは、データの開始行は6行目なので、コピーしないということでしょうか。それとも、真のデータの開始行は6行目でなく、他の行(2行目とか3行目とか等)なのでしょうか。
すいません、一部まちがえました
データは、AブックのA6からA10まで
はいってます
開始ぎょうは
Aが6行目、Bが、2行目です
すいません、宜しくお願い致します!
No.3
- 回答日時:
ああ、失礼しました。
最後のデータがあるセルまでを選択したいという事でしたね。
面倒なんでA6セルからA1048576までをコピペすることを勧めます。
そののちに空白セルを削除で良いんじゃないかな。
ブックAからコピー の箇所
Range("A6:A100").Select
↓
Range("A6:A1048576").Select
ブックBにペースト の箇所
Range("A2:A100").Select
↓
Range("A2").Select
とするだけです。
No.2
- 回答日時:
質問者さんの意図とはちょっと違うと思いますが、
手順を一つずつ踏んで作業をするなら、
' ブックAからコピー
Windows("A.xlsx").Activate
Sheets("Sheet1").Select
Range("A6:A100").Select
Selection.Copy
' ブックBにペースト
Windows("B.xlsm").Activate
Sheets("リスト").Select
Range("A2:A100").Select
ActiveSheet.Paste
' 空白セルを選択
Selection.SpecialCells(xlCellTypeBlanks).Select
' 選択されたセルを削除し上に詰める
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
こんな感じかな。
たぶん「マクロの記録」でも同じように記録されると思います。
……やべえ、確認してみたらそのまんまだったわ。ということでマクロをそのまま公開。
(コピペするなら行頭の全角スペースの処理をしておきましょう)
・・・余談・・・
やらなくてもOKなんだけど、プログラミング経験者としては、
' (変数の定義)
' (ブックBのA2からA100の範囲をクリア)
' (ブックAが開かれていなければブックAを開く)
' ブックAからコピー
' ブックBにペースト
' 空白セルを選択
' 選択されたセルを削除し上に詰める
' (マクロからブックAが開いたならブックAを閉じる)
' (ブックBの "リスト" A1セルを選択)
のように行儀よく作るかな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
VBA シートをコピーする際に Co...
-
VBA コードを実行すると画面が...
-
ワイルドカード「*」を使うとう...
-
オブジェクトは、このプロパテ...
-
Excel にて、 リストボックスの...
-
VBAで別のブックにシートをコピ...
-
[Excel]ADODBでNull変換されて...
-
別ブックをダイアログボックス...
-
EXCEL VBA で現在開いているブ...
-
【VBA】全シートの計算式を全て...
-
【Excel VBA】書き込み先ブック...
-
VBA アプリケーション定義また...
-
2つ目のコンボボックスが動作...
-
Excelファイルを開くとき、読み...
-
エクセルのマクロについて教え...
-
サーバーに保存したエクセルフ...
-
コードを直していただきたいで...
-
拡張メタファイルにて貼り付け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のエクセルファイルとシー...
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
【Excel VBA】書き込み先ブック...
-
2つ目のコンボボックスが動作...
-
[Excel]ADODBでNull変換されて...
-
Excelマクロ 該当する値の行番...
-
VBA 実行時エラー 2147024893
-
Excelのマクロコードについて教...
-
Excel にて、 リストボックスの...
-
【ExcelVBA】インデックスが有...
-
VBA アプリケーション定義また...
-
【Excel VBA】表の列の値毎に分...
おすすめ情報