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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
-
4
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
5
複数条件が一致で別シートに転記【エクセルVBA】
Excel(エクセル)
-
6
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
7
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
8
VBAで別ブックの列を検索し、該当があれば行ごと新規ブックにコピーしたい。
Excel(エクセル)
-
9
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
10
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
11
VBAで条件が一致する行のデータを別シートに抽出
Excel(エクセル)
-
12
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
13
VBA 条件が一致したら別シートに転記し、計算させたい
Visual Basic(VBA)
-
14
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
15
VBAで重複する項目を1つにまとめて金額を合計したい
Excel(エクセル)
-
16
エクセルマクロ 【空白セルを無視する方法を教えてください】
Excel(エクセル)
-
17
VBA 条件が一致した場合のみコピーする
その他(ビジネス・キャリア)
-
18
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
19
VBA 空白行に転記する
Visual Basic(VBA)
-
20
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba 2つの条件が一致したら...
-
B列の最終行までA列をオート...
-
Worksheets メソッドは失敗しま...
-
【VBA】2つのシートの値を比較...
-
VBAでのリスト不一致抽出について
-
エクセル 2つの表の並べ替え
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
エクセルVBA intersect colu...
-
マクロ 最終列をコピーして最終...
-
マクロについて。S列の途中から...
-
EXCEL VBA 条件に合致しない行...
-
エクセルVBAにて =A1=B1とすれ...
-
エラーコード1004
-
VBマクロ 色の付いたセルを...
-
【Excel VBA】カンマと改行コー...
-
URLのリンク切れをマクロを使っ...
-
VBAで指定範囲内の空白セルを左...
-
エクセルで最大列を増やす
-
vba 重複データ合算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
VBAのコードを教えてください
-
VBAを使って検索したセルをコピ...
-
B列の最終行までA列をオート...
-
エクセルvbaについて
-
vba 2つの条件が一致したら...
-
Excelで、あるセルの値に応じて...
-
VBA UserFormからの転記で
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
VBA 何かしら文字が入っていたら
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
エクセルVBAにて =A1=B1とすれ...
-
【VBA】2つのシートの値を比較...
-
データグリッドビューの一番最...
-
VBマクロ 色の付いたセルを...
-
VBAで指定範囲内の空白セルを左...
おすすめ情報