
同ブックの別シートの表から、特定の列を複数列コピーしたい。
VBA初心者です。
同ブックの別シートの表から、特定の列を複数列コピーして
Sheet2に貼り付けたいのですが、このコードでは具体的に何がエラーなのかわかりません。
調べても同じような例はなかったので、
問題点を教えてください。
なにとぞよろしくおねがいします。
ThisWorkbook.Worksheets("商品名一覧(sheet1)").Range("B5", "D5", "F5", "G5", "H5").End(xlDown).Copy _
Destination:=Sheets("商品発注場所(sheet2)").Range("B5")
No.5ベストアンサー
- 回答日時:
あなたの提示するシート名がころころ変わって、よくわかりませんでしたので、
コピー元のシート名:sheet1
コピー先のシート名:sheet2
としました。
以下のようにしていてください。
sheet1のB列の最終行が、D,F,G,Hの最終行と一致している前提です。
(各列に空白はない前提)
Public Sub sample()
Dim maxrow As Long
Dim rg As String
maxrow = Worksheets("sheet1").Cells(Rows.Count, "B").End(xlUp).Row
rg = "B5:B" & maxrow & ",D5:D" & maxrow & ",F5:F" & maxrow & ",G5:G" & maxrow & ",H5:H" & maxrow
Worksheets("sheet1").Range(rg).Copy Destination:=Sheets("sheet2").Range("B5")
End Sub
説明の不足が多く、申し訳ありません。
変数に指定する というのが私にとっては不慣れというか苦手で。
ですがこちらの変数指定を応用して、他にやりたいことなども
組み込み、思い通りに作ることが出来ました。
スタイリッシュなコードで感動です。
今回はtatsumaru77さんをベストアンサーとさせていただきます。
ありがとうございます
No.4
- 回答日時:
No.3 です。
補足です。
さっきのコードだと、「商品名一覧」以外のシートがアクティブだとエラーになるので、どっからでも呼び出せるよう修正しました。
With Sheets("商品名一覧(sheet1)")
.Range( _
"B5:B" & .Range("B5").End(xlDown).Row & "," & _
"D5:D" & .Range("D5").End(xlDown).Row & "," & _
"F5:F" & .Range("F5").End(xlDown).Row & "," & _
"G5:G" & .Range("G5").End(xlDown).Row & "," & _
"H5:H" & .Range("H5").End(xlDown).Row & "").Copy _
Sheets("商品発注場所(sheet2)").Range("B5")
End With
回答ありがとうございます。
貴殿のコードを一度動かしてみました。
きれいにコピーしてきてくれました。ありがとうございます。
"B5:B"という書き方、参考にさせていただきます。
どこからでも呼べるようにも補足までありがとうございます。
Ggrksdqnさんはとてもお優しい人ですね。
感謝です
No.3
- 回答日時:
>Range("B5", "D5", "F5", "G5", "H5").End(xlDown).Copy
こういうことは出来ないです。
<参考コード>
Sheets("商品名一覧(sheet1)").Range( _
"B5:B" & Range("B5").End(xlDown).Row & "," & _
"D5:D" & Range("D5").End(xlDown).Row & "," & _
"F5:F" & Range("F5").End(xlDown).Row & "," & _
"G5:G" & Range("G5").End(xlDown).Row & "," & _
"H5:H" & Range("H5").End(xlDown).Row & "").Copy _
Sheets("商品発注場所(sheet2)").Range("B5")
No.1
- 回答日時:
こんにちは
>具体的に何がエラーなのかわかりません。
エラーの際に、エラーメッセージが表示されるはずです。
まず、その内容を確認しましょう。エラーの直接の原因が示されているはずです。
その辺の情報がないので、特定はできませんが、ありそうなのは
・シート名が正しくない
・Rangeの指定がおかしい
といったあたりでしょうか。
特に後者の
>Range("B5", "D5", "F5", "G5", "H5")
は確実にエラーになります。
Range("B5, D5, F5, G5, H5")
のような記述であればエラーにはなりませんが、End(xlDown)としているので、仮にエラーが出なくても、質問者様の意図とは違う結果になるのではないかと懸念します。
とは言っても、実際になさりたいことが何なのかわかっていませんので、違うとは限りませんけれど…
お早い回答ありがとうございます。
不足ですみません。
("商品名一覧(sheet1)")に、A列からH列までの表があり、
4行目を見出し名として、5行目から項目が入っています。
このB,D,F,G,H列を5行目から最終行までコピーして、
("商品発注場所(sheet2)")のB,C,D,E,F列の5行目にペーストしたい
ということです。
掲題コードから↓にコードを直して動かしてみたのですが、
B列最後の1つのセルしかコピペしてきてくれません。
ThisWorkbook.Worksheets("データ項目一覧").Range("B5,D5,F5,G5,H5").End(xlDown).copy _
Destination:=Sheets("項目使用テーブル").Range("B5")
どう記述すれば他の列も含め、5行目から最終行までコピーしてくれでしょうか・・
これで意図がおわかりいただければよいのですが・・
拙くてすみません。よろしくおねがいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
複数列を指定、3列含む行が空白だったら背景色をつける。 質問を見てくださってありがとうございます。
Visual Basic(VBA)
-
VBA 空白セルを削除ではない方法で詰めるやり方
Visual Basic(VBA)
-
for Each の入れ子で、できそうなのですが。。。。
Visual Basic(VBA)
-
4
特定列の指定した行から文字列を探し、あった場合はその文字をフィルターにかける お世話になります。 エ
Visual Basic(VBA)
-
5
ExcelVBAで以下のマクロを作成したのですが特定のPCで出力結果が異なってしまいます
Visual Basic(VBA)
-
6
エクセルVBA テキストボックス 検索
Visual Basic(VBA)
-
7
ExcelVBA フォームでデータ検索して一致したものを新しいシートへコピーする
Visual Basic(VBA)
-
8
VBA ブックのイベント
Visual Basic(VBA)
-
9
エクセルのセル参照で、「=シート名!A1」とし、その2行下に「=シート名!A2」としたい。
Excel(エクセル)
-
10
VBA VLookUPについて助けて下さい。
Visual Basic(VBA)
-
11
エクセルVBA→他ブックを参照して、条件に一致したシート名をセルに記入したい。 VBAの難しさに悶え
Visual Basic(VBA)
-
12
転記 マクロ VBA
Visual Basic(VBA)
-
13
VBA for next
Visual Basic(VBA)
-
14
VBAの記述について 値のみの貼り付け
Visual Basic(VBA)
-
15
Excelにて、列データーの中で、文字を残して数字のみをクリアしたい
Excel(エクセル)
-
16
エクセルVBA→シート名でCSV出力する際、シートの文字列はそのままで、CSVでは文字を置き換えて出
Visual Basic(VBA)
-
17
エクセルで数字を入力したら指定の画像を出す方法
Excel(エクセル)
-
18
Excel vba 参照セルが変更された時
Excel(エクセル)
-
19
VBA(初心者)質問失礼します。 Excelデータでフィルターをかけて指定条件でソートし、可視セルの
Visual Basic(VBA)
-
20
VBA コードを実行すると画面が真っ白になる
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
【VBA】ワークブックを開く時に...
-
5
文字列内で括弧を使うには
-
6
String""から型'Double'への変...
-
7
シングルクォーテーションを含...
-
8
エクセル 足し算引き算で 空...
-
9
実行時エラー 438 の解決策をお...
-
10
UBoundに配列がありませんとエ...
-
11
pythonのopenpyxlについて
-
12
マクロで"#N/A"のエラー行を削...
-
13
ExcelVBAで日付の比較をする方...
-
14
ACCESSで値を代入できないとは?
-
15
Filter関数を用いた結果、何も...
-
16
実行したSQLの結果を返す方法
-
17
Excel実行時エラー[80004005]に...
-
18
LaTeXのエラーについて(コンパ...
-
19
On ErrorでエラーNoが0
-
20
Excel VBA のFunctionプロシー...
おすすめ情報