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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
推しミネラルウォーターはありますか?
推しミネラルウォーターがあったら教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
【VBA】指定した検索条件に一致したら別シートに転記したい
Visual Basic(VBA)
-
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
-
4
【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。
Excel(エクセル)
-
5
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
6
エクセルのVBAで日付を検索し転機したい
Visual Basic(VBA)
-
7
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
8
別のシートから値を取得するとき
Visual Basic(VBA)
-
9
VBA 見つからなかった時の処理
Excel(エクセル)
-
10
VBAで別ブックの列を検索し、該当があれば行ごと新規ブックにコピーしたい。
Excel(エクセル)
-
11
マクロで空白セルを詰めて別シートに転記
Visual Basic(VBA)
-
12
VBA 別ブックから条件に合うものを転記したいです
Visual Basic(VBA)
-
13
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
14
完全一致したら代入するマクロを教えてください
Excel(エクセル)
-
15
VBAで繰り返しコピーしながら下へ移動させる方法
Excel(エクセル)
-
16
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
17
VBA 日付一致で転記
Visual Basic(VBA)
-
18
エクセルVBA Ifでシート名が合致したら別ファイルから転記する場合のElse IfとForの書き方
Visual Basic(VBA)
-
19
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
20
エクセルVBA 4行飛ばしで転記するループ処理
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
VBAコンボボックスで選択した値...
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
Changeイベントでの複数セルの...
-
VBA 列が空白なら別のマクロへ...
-
VBAを使って検索したセルをコピ...
-
セルに値が入っていた時の処理
-
【Excel VBA】 B列に特定の文字...
-
文字列の結合を空白行まで実行
-
Cellsのかっこの中はどっちが行...
-
VBA 何かしら文字が入っていたら
-
VBAで、特定の文字より後を削除...
-
IIF関数の使い方
-
VBA 値と一致した行の一部の列...
-
エクセルVBA シートモジュール...
-
複数の列の値を結合して別の列...
-
Excel マクロ VBA 別シートのセ...
-
【VBA】複数行あるカンマ区切り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
URLのリンク切れをマクロを使っ...
-
文字列の結合を空白行まで実行
-
データグリッドビューの一番最...
-
【VBA】2つのシートの値を比較...
-
VBA 何かしら文字が入っていたら
-
IIF関数の使い方
-
VBAを使って検索したセルをコピ...
-
Changeイベントでの複数セルの...
-
VBAの構文 3列置きにコピーし...
-
VBAのFind関数で結合セルを検索...
-
【Excel VBA】 B列に特定の文字...
-
VBAで指定範囲内の空白セルを左...
-
VBAでのリスト不一致抽出について
-
セルに値が入っていた時の処理
-
VBAコンボボックスで選択した値...
おすすめ情報