Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12764 / 76734 ←次へ | 前へ→

【69485】Re:条件が一致したもののみコピーする
発言  Yuki  - 11/7/21(木) 15:53 -

引用なし
パスワード
   ▼tantan さん:
>Sheet1とSheet2のJ3セル以下の製造番号を対比して同じであれば
>Sheet2のFG列より右に入っている数字やテキストなどすべてをSheet1の
>同じ場所にコピーしたい
こんにちは。
こんな感じですか。

Sub TESTa()
  ' Sheet2 --> Sheet1
  Dim v1 As Variant
  Dim v2 As Variant
  Dim v3 As Variant
  Dim Dic As Object
  Dim i  As Long
  Dim j  As Long
  
  With Worksheets("Sheet2")
    v1 = .Range("J3:J" & .Range("J" & .Rows.Count).End(xlUp).Row).Value
    v2 = .Range("FG3:IV" & .Range("J" & .Rows.Count).End(xlUp).Row).Value
  End With
  Set Dic = CreateObject("Scripting.Dictionary")
  For i = 1 To UBound(v1)
    If Not Dic.Exists(v1(i, 1)) Then
      Dic(v1(i, 1)) = i
    End If
  Next
  With Worksheets("Sheet1")
    v1 = .Range("J3:J" & .Range("J" & .Rows.Count).End(xlUp).Row).Value
    v3 = .Range("FG3:IV" & .Range("J" & .Rows.Count).End(xlUp).Row).Value
  End With
  For i = 1 To UBound(v1)
    If Dic.Exists(v1(i, 1)) Then
      For j = 1 To UBound(v2, 2)
        v3(i, j) = v2(Dic(v1(i, 1)), j)
      Next
    End If
  Next
  With Worksheets("Sheet1")
    .Range("FG3").Resize(UBound(v3), UBound(v3, 2)).Value = v3
  End With
End Sub
4 hits

【69482】条件が一致したもののみコピーする tantan 11/7/20(水) 23:36 質問
【69485】Re:条件が一致したもののみコピーする Yuki 11/7/21(木) 15:53 発言
【69486】Re:条件が一致したもののみコピーする こたつねこ 11/7/21(木) 23:29 回答
【69495】Re:条件が一致したもののみコピーする tantan 11/7/23(土) 15:35 お礼

12764 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free