以下のコードはブック内のSheets(1)のD2セルにある値がSheets(2)のG列のセルに部分一致で
存在する場合
G列の当該セルからオフセットしたC列の値をSheets(1)のD2セルの1つ隣のC2セルに貼り付けるものです。
Sub 検索して貼付け()
Dim FoundCell As Range
Set FoundCell = Sheets(2).Range("G1").CurrentRegion.Find(What:=Sheets(1).Range("D2").Value, LookAt:=xlPart)
Sheets(2).Activate
Sheets(2).Range(FoundCell.Address).Offset(0, -4).Select
ActiveCell.Copy _
Destination:=Sheets(1).Range("C2")
Sheets(1).Activate
End Sub
Sheets(1),Sheets(2)にそれぞれ同じフォーマットで5000行以上のデータがあった場合、1行分づつこのコードを作るのはしんどいです。
一度に処理できるようにコードをまとめられませんでしょうか?
お詳しい方宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
こんばんは
Sheet(1)のD列でループさせればよいだけですが、ご質問文の文章とコードに異なる点が・・
文章では「G列のセルに部分一致で」となっていますが、コードは Range("G1").CurrentRegion となっているので一致していません。
文章の方を、正と解釈しました。
また、ご提示のコードではコピペを行っていますが、以下のサンプルでは「値の転記」に変えてありますので、書式等はコピーされません。
(書式等も必要な場合は、コピペに修正してください)
以下、ご参考までに。
Sub Q12780908()
Dim rw, fc, v, s
With Worksheets(1)
For rw = 2 To .Cells(Rows.Count, 4).End(xlUp).Row
s = .Cells(rw, 4).Value
Set fc = Worksheets(2).Columns(7).Find(what:=s, LookAt:=xlPart)
If s = "" Or fc Is Nothing Then v = "" Else v = fc.Offset(, -4).Value
.Cells(rw, 3).Value = v
Next rw
End With
End Sub
No.3
- 回答日時:
No2です。
No1の方が、質問者様の希望通りの回答をされてますので、回答を控えます。
No.2
- 回答日時:
次の繰り返しは、どのように繰り返すのですか。
2回目は、
Sheets(1)のD3セルにある値がSheets(2)のG列のセルに部分一致で
存在する場合
G列の当該セルからオフセットしたC列の値をSheets(1)のD3セルの1つ隣のC3セルに貼り付ければ良いのですか。
検索元データ 検索先 貼り付けデータ 貼り付け先
2回目 Sheet(1)のD3 1回目と同じ 1回目と同じ Sheet(1)のC3
3回目 Sheet(1)のD4 1回目と同じ 1回目と同じ Sheet(1)のC4
・・
n回目 Sheet(1)のDx 1回目と同じ 1回目と同じ Sheet(1)のCx (x=n+1)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Excel(エクセル) マクロで行を追加、削除すると行位置がずれますが、解決方法はありませんか?。 5 2022/05/28 16:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
【Excel】指定したセルの名前で...
-
ExcelVBAを使って、値...
-
Excelで指定した日付から過去の...
-
EXCELで変数をペーストしたい
-
Excel vbaで特定の文字以外が入...
-
i=cells(Rows.Count, 1)とi=cel...
-
ExcelのVBAで数字と文字列をマ...
-
【VBA】指定したセルと同じ値で...
-
特定の文字を条件に行挿入とそ...
-
セル色なしの行一括削除
-
VBA実行後に元のセルに戻りたい
-
【VBA】シート上の複数のチェッ...
-
指定した条件で範囲選択したい
-
Excel VBA、 別ブックの最終行...
-
EXCELのVBA-フィルタ抽出後の...
-
実行時エラー438 オブジェクト...
-
先頭と末尾を指定して連続した...
-
EXCEL VBA 画面のロックについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
Excel vbaで特定の文字以外が入...
-
特定の文字を条件に行挿入とそ...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
Excel VBA、 別ブックの最終行...
-
VBAを使用した時間管理
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
【EXCEL VBA】Range("A:A").Fi...
-
VBA コピーして次の値まで貼り...
-
VBA初心者です。結合セルを保持...
おすすめ情報
ご質問ありがとうございます。
2回目以降はそのように繰り返します。