マクロを作りたいのですが、以下のようなものをどうすればできるかで詰まっています。
Sheet2にある情報をSheet1のA1に1列(A列B列C列の順)で並ぶようにしたいです。
Sheet2の内容は変わることがあるので、データがどの行まで入っているかはマクロを走らせるときにチェックしないとわからないかと思います。
[Sheet1]
111
222
333
aa
bb
aaa
bbb
ccc
ddd
eee
--------------------------
[Sheet2]
ABC
1111aaaaa
2222bbbbb
3333ccc
4ddd
5eee
素人な質問かもしれないですが、調べてもわからなかったので、教えていただけると幸いです。
No.4ベストアンサー
- 回答日時:
>A列 F列 H列にあるデータのみ
他の方への投げかけでは,また違う場所にあるデータを転記したいとなっていますよね。
「具体的に」どこからのデータを転記したいのかによって,適切なマクロの書きぶりが違うということを理解してください。
○A列,C列,E列,G列のように規則的に飛び飛びの列を処理したいと言いたかったときは
sub macro2()
dim i as long
dim r as long
worksheets("Sheet1").range("A:A").clearcontents
for i = 1 to 7 step 2
r = worksheets("Sheet2").cells(65536, i).end(xlup).row
worksheets("Sheet2").cells(1, i).resize(r, 1).copy _
destination:=worksheets("Sheet1").range("A65536").end(xlup).offset(1)
next i
worksheets("Sheet1").range("A1").delete shift:=xlshiftup
end sub
○通常はあまり考えにくい状況ですが,A列,F列,H列とデタラメな列を処理したい場合
sub macro3()
dim i as variant
dim r as long
dim a as variant
a = array(1,6,8)
worksheets("Sheet1").range("A:A").clearcontents
for each i in a
r = worksheets("Sheet2").cells(65536, i).end(xlup).row
worksheets("Sheet2").cells(1, i).resize(r, 1).copy _
destination:=worksheets("Sheet1").range("A65536").end(xlup).offset(1)
next i
worksheets("Sheet1").range("A1").delete shift:=xlshiftup
end sub
#補足
思いつきで補足質問を投げるから,言葉足らず説明不足で「良いアドバイス」が得られません。結果してお互いに二度手間三度手間になることが非常に多くあります。まさにこのご相談のように。
次の課題に進みたい時は思いつきで「ついでに聞いちゃえ」じゃなく,一回ご相談を「解決」で閉じてから,改めて「今度は具体的にこういう状況でこうしたい」とキチンとご相談を書くことを覚えてください。
No.3
- 回答日時:
Sheet2はA,B,Cの3列のみなのでしょうか?
もしそれ以降もある可能性があるのなら
Sub sample()
Dim rIdx, rIdx1, cIdx As Long
Sheets("Sheet2").Activate
Do Until Cells(1, cIdx + 1).Value = ""
cIdx = cIdx + 1
For rIdx = 1 To Cells(Rows.Count, cIdx).End(xlUp).Row
rIdx1 = rIdx1 + 1
Sheets("Sheet1").Cells(rIdx1, 1).Value = Cells(rIdx, cIdx).Value
Next
Loop
End Sub
ではいかがでしょう?
この回答への補足
ありがとうございます!
すいません、言葉が足りなかったのですが、
連続した列ではなく、
A、C、F、H、J
というように列を指定したいです。どう書き換えればいいでしょうか?
No.2
- 回答日時:
一例です。
Sub sample()
Set st1 = Sheets("sheet1")
Set st2 = Sheets("sheet2")
For c = 1 To 3
For r = 1 To st2.Cells(Rows.Count, c).End(xlUp).Row
cnt = cnt + 1
st1.Cells(cnt, "A") = st2.Cells(r, c)
Next
Next
End Sub
No.1
- 回答日時:
こんなカンジ:
sub macro1()
dim i as long
dim r as long
worksheets("Sheet1").range("A:A").clearcontents
for i = 1 to 3
r = worksheets("Sheet2").cells(65536, i).end(xlup).row
worksheets("Sheet2").cells(1, i).resize(r, 1).copy _
destination:=worksheets("Sheet1").range("A65536").end(xlup).offset(1)
next i
worksheets("Sheet1").range("A1").delete shift:=xlshiftup
end sub
この回答への補足
ありがとうございます!
ちなみになのですが、
A列 F列 H列
にあるデータのみこのマクロを適用させてシート1にコピーしたい場合はどのように記述すればいいのでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- Visual Basic(VBA) VBAでvlookup関数から、別シート参照するやり方・・・ 2 2022/11/14 18:49
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Excel(エクセル) エクセルの日付抽出 2 2023/02/03 15:02
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- Visual Basic(VBA) このプログラムなんですがsheetにデータを置いて表示できるようにしてありますがsheetに101を 2 2023/02/23 20:13
- Excel(エクセル) 【Excel質問】別シートにある複数の同型の表から、同じ行項目にある数字を集計する 4 2023/02/16 00:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
文字列の結合を空白行まで実行
-
vba 2つの条件が一致したら...
-
VBAを使って検索したセルをコピ...
-
データグリッドビューの一番最...
-
URLのリンク切れをマクロを使っ...
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
B列の最終行までA列をオート...
-
エクセル 2つの表の並べ替え
-
DataGridViewに空白がある場合...
-
Cellsのかっこの中はどっちが行...
-
VBAで、離れた複数の列に対して...
-
VBAのFind関数で結合セルを検索...
-
マクロ 最終列をコピーして最終...
-
期限を超えた日付に警告のメッ...
-
vbaでシートより100より大きい...
-
VBA初心者です 検索した数字の...
-
Changeイベントでの複数セルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報