Excel VBA質問箱 IV

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

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


9877 / 76734 ←次へ | 前へ→

【72414】Re:再:2つのシートのデータを照合し列が一致したら転記したい
発言  kanabun  - 12/8/8(水) 14:34 -

引用なし
パスワード
   質問3.はおいておいて、

質問1.と質問2.に関してだけですが、

(簡単のため、結合セルはなくて、1行1データの構成であったと
仮定しますと)
要は

「データ」シート
  A   B   C  D  E  F  G    
  aaa  1/1 あああ a-1 0   0  0
  aaa  2/1 あああ a-2 0   0  0
  bbb  2/3 いいい b-1 1000 0  0
  bbb  5/3 いいい b-2 3000 0  0
  ccc  5/2 ううう c-1 900  0  0
  ccc  8/2 ううう c-2 1200  0  0
  ddd  6/4 えええ d-4 100  200 300

「表」シート
  A列  B列 C列  … O列  P列  Q列  R列
        aaa
        bbb
        ccc
        eee

とあったら、
Find転記後「表」シートは ↓のようになっていればいいって
ことなんですよね?

「表」シート
 A列  B列 C列  … O列  P列  Q列 R列  S列 T列 …
       aaa    1/1 あああ a-1 0   0  0
       aaa    2/1 あああ a-2 0   0  0
       bbb    2/3 いいい b-1 1000 0  0
       bbb    5/3 いいい b-2 3000 0  0
       ccc    5/2 ううう c-1 900  0  0
       ccc    8/2 ううう c-2 1200 0  0

だったら「表」シートのC列の(元のユニークな)抽出データは
配列に覚えておいて、「データ」シートの該当行を<転記先行>の
O列〜AH列に転記するとき、同時に検索値もC列に<転記先行>に
上書きしてしまえば、いいのでは?

Sub マッチング2()
  Dim 検索範囲 As Range, 該当セル As Range
  Dim FirstHitRow As Long
  Dim 転記先行 As Long '最初にヒットした行番号
  Dim tbl As Variant, v As Variant
  
  With Worksheets("データ") '「検索範囲」は A列
    Set 検索範囲 = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
  End With
  
  転記先行 = 5 '「転記先行」はO列 5行目から
  With Worksheets("表").Range("C5:C55")
    tbl = .Value 'C列 抽出データ
    .ClearContents
  End With
  For Each v In tbl
    If Not IsEmpty(v) Then
     Set 該当セル = 検索範囲.Find(v, , xlFormulas, xlWhole)
     If Not 該当セル Is Nothing Then '該当セルが見つかった場合は
       FirstHitRow = 該当セル.Row '最初にヒットした行番号
       Do
         該当セル.Copy Cells(転記先行, 3) 'C列に上書き
         CopyLine 該当セル, Cells(転記先行, 15) '21列をコピー
         
         転記先行 = 転記先行 + 2 '転記先行に2を加算する。
     
         Set 該当セル = 検索範囲.FindNext(該当セル) '次を検索
     
       Loop While 該当セル.Row <> FirstHitRow
     End If
    End If
 
  Next

End Sub

6 hits

【72393】2つのシートのデータを照合し列が一致したら転記したい kiki 12/8/1(水) 23:50 質問
【72394】Re:2つのシートのデータを照合し列が一致... UO3 12/8/2(木) 10:12 発言
【72396】Re:2つのシートのデータを照合し列が一致... kiki 12/8/2(木) 22:12 発言
【72395】Re:2つのシートのデータを照合し列が一致... ドカ 12/8/2(木) 14:28 回答
【72397】Re:2つのシートのデータを照合し列が一致... kiki 12/8/2(木) 22:17 お礼
【72400】再:2つのシートのデータを照合し列が一致... kiki 12/8/6(月) 22:07 質問
【72401】Re:再:2つのシートのデータを照合し列が一... UO3 12/8/7(火) 6:23 発言
【72407】Re:再:2つのシートのデータを照合し列が一... kiki 12/8/7(火) 20:48 質問
【72420】Re:再:2つのシートのデータを照合し列が一... UO3 12/8/8(水) 21:02 発言
【72427】Re:再:2つのシートのデータを照合し列が一... kiki 12/8/8(水) 22:21 お礼
【72402】Re:再:2つのシートのデータを照合し列が一... UO3 12/8/7(火) 6:36 発言
【72403】Re:再:2つのシートのデータを照合し列が一... UO3 12/8/7(火) 6:39 発言
【72404】Re:再:2つのシートのデータを照合し列が一... ぶらっと 12/8/7(火) 10:09 回答
【72409】Re:再:2つのシートのデータを照合し列が一... kiki 12/8/7(火) 20:54 お礼
【72405】Re:再:2つのシートのデータを照合し列が一... kanabun 12/8/7(火) 14:25 発言
【72411】Re:再:2つのシートのデータを照合し列が一... kiki 12/8/7(火) 22:25 お礼
【72410】再:2つのシートのデータを照合し列が一致... kiki 12/8/7(火) 21:11 質問
【72412】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/8(水) 12:51 発言
【72413】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/8(水) 13:34 発言
【72414】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/8(水) 14:34 発言
【72415】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/8(水) 14:46 発言
【72416】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/8(水) 17:07 発言
【72418】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/8(水) 17:17 発言
【72419】Re:再:2つのシートのデータを照合し列が... kiki 12/8/8(水) 20:41 質問
【72422】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/8(水) 21:10 回答
【72426】Re:再:2つのシートのデータを照合し列が... kiki 12/8/8(水) 22:13 お礼
【72430】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/9(木) 14:26 発言
【72437】Re:再:2つのシートのデータを照合し列が... kiki 12/8/9(木) 23:21 お礼
【72439】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/10(金) 9:18 発言
【72421】Re:再:2つのシートのデータを照合し列が... kiki 12/8/8(水) 21:06 質問
【72431】Re:再:2つのシートのデータを照合し列が... kanabun 12/8/9(木) 14:42 発言
【72438】Re:再:2つのシートのデータを照合し列が... kiki 12/8/9(木) 23:22 お礼

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