VBA勉強中で調べながらプログラムを作成しています。
調べた中で似た内容のプログラムを実行させたのですが自分が実行したい内容と
一部違うのでどうすればいいのかをご教授いただけると助かります。
下記プログラムではコメントでもあるように1行全部の転記となってしまう為
一部の列のみを転記するプログラムに変更したいです。
◆似た内容のプログラム◆
Sub Sample()
Dim c As Range
Dim v() As Variant
Dim cols As Long
Dim j As Long
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
With Sheets("Sheet2")
'シート2のA3からA列のデータ最終行までのセルを1つずつ取り出す
For Each c In .Range("A3", .Range("A" & .Rows.Count).End(xlUp))
dic(c.Value) = dic.Count + 1 'その値をキー、1からの連番をデータとして辞書登録
Next
End With
With Sheets("Sheet1")
'シート1の列数取得
cols = .UsedRange.Cells(.UsedRange.Cells.Count).Column
ReDim v(1 To dic.Count, 2 To cols) '転記用配列
'シート1のG5からG列のデータ最終行までのセルを1つずつ取り出す
For Each c In .Range("G5", .Range("G" & .Rows.Count).End(xlUp))
'もし辞書にあれば(シート2にあれば)1行分のイメージを配列に格納
If dic.exists(c.Value) Then
For j = 2 To cols
v(dic(c.Value), j) = c.EntireRow.Cells(j).Value
Next
End If
Next
End With
With Sheets("Sheet2")
.Range("I3").Resize(UBound(v, 1), UBound(v, 2)).Value = v
.Select
End With
MsgBox "転記終了"
End Sub
◆実行したい内容◆
【Sheet2】A3~最終行までの番号(値)をキーとして
【Sheet1】G5~最終行までの番号(値)と一致した同じ行の一部の列(B5・K5・M5・S5の最終行まで)を
【Sheet2】一致した番号(値)と同じ行の列(I3・J3・K3・L3の最終行まで)に転記したいと思っています。
転記元 ⇒ 転記先
【Sheet1】B列 ⇒ 【Sheet2】I列
【Sheet1】K列 ⇒ 【Sheet2】J列
【Sheet1】M列 ⇒ 【Sheet2】K列
【Sheet1】S列 ⇒ 【Sheet2】L列
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは!
人様がお考えになったコードに手を加えるのは好みではないので・・・
Sub Sample1()
Dim i As Long, c As Range, wS As Worksheet
Set wS = Worksheets("Sheet1")
With Worksheets("Sheet2")
For i = 3 To .Cells(Rows.Count, "A").End(xlUp).Row
Set c = wS.Range("G:G").Find(what:=.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
With .Cells(i, "I")
.Value = wS.Cells(c.Row, "B")
.Offset(, 1) = wS.Cells(c.Row, "K")
.Offset(, 2) = wS.Cells(c.Row, "M")
.Offset(, 3) = wS.Cells(c.Row, "S")
End With
End If
Next i
End With
MsgBox "完了"
End Sub
※ Sheet1のG列に重複データがある場合、
最初にヒットした行のデータが表示されます。
こんな感じをご希望をご希望なのでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。
Excel(エクセル)
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
-
4
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
5
VBA 別ブックから条件に合うものを転記したいです
Visual Basic(VBA)
-
6
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
7
VBA 列全体を別シートの列と比較し、同じ値がある行の、右端に値をコピーする方法について
Excel(エクセル)
-
8
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
9
ある条件を満たすセルに対応する行のセル内容をコピーして・・
Visual Basic(VBA)
-
10
excel2010 マクロで複数シート検索し、一致した行をコピーしたい
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
複数条件が一致で別シートに転記【エクセルVBA】
Excel(エクセル)
-
13
完全一致したら代入するマクロを教えてください
Excel(エクセル)
-
14
VBAで別ブックの列を検索し、該当があれば行ごと新規ブックにコピーしたい。
Excel(エクセル)
-
15
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
16
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
17
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
18
別のシートから値を取得するとき
Visual Basic(VBA)
-
19
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
20
VBA 別シートの同じ日付の欄に値を貼付け
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・ちょっと先の未来クイズ第5問
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
Worksheets メソッドは失敗しま...
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
文字列の結合を空白行まで実行
-
VBA 何かしら文字が入っていたら
-
複数csvを横に追加していくマク...
-
改行ごとに行を追加し、数量を分割
-
Changeイベントでの複数セルの...
-
VBAのFind関数で結合セルを検索...
-
空白セルをとばして転記
-
【マクロ】列比較し色塗りしていく
-
VBAを使って検索したセルをコピ...
-
Excel VBA:エクセルのマクロで...
-
rowsとcolsの意味
-
Cellsのかっこの中はどっちが行...
-
SUM関数の範囲を変数を代入して...
-
オートフィルタをマクロで作成...
-
複数処理 Worksheet_Change(ByV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
URLのリンク切れをマクロを使っ...
-
IIF関数の使い方
-
【Excel VBA】 B列に特定の文字...
-
【VBA】2つのシートの値を比較...
-
データグリッドビューの一番最...
-
Changeイベントでの複数セルの...
-
C# dataGridViewの値だけクリア
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
rowsとcolsの意味
-
VBAで、離れた複数の列に対して...
-
VBAでのリスト不一致抽出について
-
VBA 何かしら文字が入っていたら
-
VBAコンボボックスで選択した値...
-
マクロ 最終列をコピーして最終...
おすすめ情報