Excel VBA質問箱 IV

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

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


41305 / 76736 ←次へ | 前へ→

【40512】Re:検索して一致したらデータ入力
質問    - 06/7/15(土) 12:48 -

引用なし
パスワード
   ▼ichinose さん:
有難うございました。

質問の内容が分かりにくくて申し訳ないです。
試してみましたところ、DDDだけではなく
リストにあった全てのデータが以下のように
表示されてしまいました。

年月日    ID1    ID2    料金
6月1日    AAA    111    6300
6月3日    BBB    222    3000
6月5日    CCC    333    4000
6月7日    AAA    111    9000
6月10日    CCC    333    4000
6月12日    BBB    222    8000
6月20日    AAA    111    7000
    AAA      111    1000
    BBB      222    1000
    CCC     333    1000
    DDD     444    1000

いろいろ試して見ます。


>▼涙 さん:
>こんばんは。
>
>>>シートA(リスト)
>>
>>    A    B    C
>>1      ID1    ID2      氏名
>>2       AAA    111      中田
>>3    BBB    222      宮本
>>4    CCC    333     中村
>>5    DDD    444     川口
>>
>>
>>シートB
>>    A    B    C    D    
>>1  年月日    ID1    ID2  料金
>>2   6/1    AAA     111    6300    
>>3   6/3    BBB     222    3000
>>4   6/5    CCC     333    4000
>>5   6/7    AAA     111    9000
>>6   6/10    CCC     333    4000
>>4   6/12    BBB     222    8000
>>8   6/20    AAA     111    7000
>>
>><ほしい結果>
>>シートB
>>    A    B    C    D    
>>1  年月日    ID1    ID2  料金
>>2   6/1    AAA     111    6300    
>>3   6/3    BBB     222    3000
>>4   6/5    CCC     333    4000
>>5   6/7    AAA     111    9000
>>6   6/10    CCC     333    4000
>>4   6/12    BBB     222    8000
>>8   6/20    AAA     111    7000
>>8        DDD     444    1000
>>
>標準モジュールに
>'===============================================================
>Sub main()
>  Dim rng1 As Range
>  Dim rng2 As Range
>  Dim crng As Range
>  Dim nrw As Long
>  With Worksheets("シートA")
>    Set rng1 = .Range("a2", .Cells(.Rows.Count, "a").End(xlUp))
>    End With
>  With Worksheets("シートB")
>    Set rng2 = .Range("b2", .Cells(.Rows.Count, "b").End(xlUp))
>    End With
>  If rng1.Row > 1 Then
>    If rng2.Row > 1 Then
>     nrw = 0
>     For Each crng In rng1
>       If Evaluate("=SUM(EXACT(" & rng2.Address(, , , True) & "," & crng.Address(, , , True) & ")*1)") = 0 Then
>        With rng2
>          .Cells(.Rows.Count + 1 + nrw, 1).Resize(, 2).Value = crng.Resize(, 2).Value
>          .Cells(.Rows.Count + 1 + nrw, 3).Value = 1000
>          End With
>        nrw = nrw + 1
>        End If
>       Next
>    Else
>     With rng2
>       .Cells(2, 1).Resize(rng1.Rows.Count, 2).Value = rng1.Resize(, 2).Value
>       .Cells(2, 3).Resize(rng1.Rows.Count).Value = 1000
>       End With
>     End If
>    End If
>End Sub
>
>で試してみてください
0 hits

【40481】検索して一致したらデータ入力 06/7/14(金) 15:33 質問
【40486】Re:検索して一致したらデータ入力 ichinose 06/7/14(金) 18:45 発言
【40512】Re:検索して一致したらデータ入力 06/7/15(土) 12:48 質問
【40517】Re:検索して一致したらデータ入力 ichinose 06/7/15(土) 15:10 発言
【40534】Re:検索して一致したらデータ入力 06/7/15(土) 22:37 お礼
【40544】Re:検索して一致したらデータ入力 ichinose 06/7/16(日) 8:56 発言
【40564】Re:検索して一致したらデータ入力 06/7/17(月) 22:14 お礼
【40515】Re:検索して一致したらデータ入力 Kein 06/7/15(土) 13:35 回答
【40520】Re:検索して一致したらデータ入力 06/7/15(土) 18:01 質問
【40562】Re:検索して一致したらデータ入力 kobasan 06/7/17(月) 16:20 発言
【40563】Re:検索して一致したらデータ入力 kobasan 06/7/17(月) 20:53 発言
【40565】Re:検索して一致したらデータ入力 06/7/17(月) 22:26 お礼

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