|
▼ショボタン さん:
>▼KAZU さん:
>>Sheet1に1000件以上のデータが入力されています。B列に数値が入力されています。
>>Sheet2の30行目にSheet1と同じ項目の内容を入力しSheet2 B列の数値と一致するSheet1の行にコピーするにはどうしたらいいのでしょうか。よろしくお願いします。
>> Sheet1 Sheet2 Sheet1
>>a b c d e a b c d e a b c d e
>>1 101 r y t → 1 101 u p y → 1 101 u p y
>>2 102 u u o
>>3 103 t i p
>>4 104 i j o
>>5 105 o n u
>>
>>
>質問内容があまり理解できませんでしたのでが以下の処理で
>できるとおもいますが…
>
>Dim s1max As Long'sheet1行数
>Dim s2max As Long'sheet2行数
>Dim i, j, count As Integer'ループカウンタ,一致データ数
>'**初期化**
>count = 0
>s1max = Sheet1.Range("B" & Sheet1.Rows.count).End(xlUp).Row
>s2max = Sheet2.Range("B" & Sheet2.Rows.count).End(xlUp).Row
>'**集計**
> For i = 30 To s2max
> For j = 2 To s1max
> If Sheet1.Cells(j, 2) = Sheet2.Cells(i, 2) Then
> count = count + 1
> Sheet2.Range(Sheet2.Cells(i, 2), Sheet2.Cells(i, 5)).Copy
> Sheet1.Cells(s1max + count, 2).PasteSpecial Paste:=xlPasteValues
> Exit For
> End If
> Next j
> Next i
>'**終了**
>MsgBox "sheet1とsheet2のデータで同じ値は" & count & "個ありました。", vbOKOnly, "結果表示"
>
>終了時にはsheet2のB30以降のデータを削除しないと処理を行う度にsheet1に
>データがコピーされますので…
>処理したいことを順を追って説明しますと
>1マクロを使って、Sheet1のデータの中からB列の検索したい特定の文字列を含むものを行 ごとSheet2に抽出しそこからさらにコンボボックスを使ってその中の1品目を選択し、User formに表示します
>2この表示された内容を修正したときコマンドボタンを使ってSheet1の修正する前と同じ場所 に上書きしたい(C列は商品固有の数値が入力されています)
>
>前回の質問ではUserformに表示されたデータを修正してSheet2の30行目にいったん転記した後、コマンドボタンでSheet1の修正する前と同じ行に上書きすることを考えました。
>方法としてはどちらでもかまわないのですが、Sheet2→1間でC列の文字列が一致した場合のSheet1への上書きの方法がわかればということなのですがいかがでしょうか。
|
|