プロが教える店舗&オフィスのセキュリティ対策術

シート4(以降Se4)にIDがあり、シート3(Se3)からIDを参照し別の列にあるコードを
Se4のIDの欄に置き換えたいです。

はじめ別の欄にVlookUpを使ったのですがひとつのセル内に2段になってIDが入っている(コードは同じ)ところがあり、エラーをはきました。

そこでマクロを使い繰り返し処理で文字列を含むで行おうとしましたが、うまく動きませんでした。
※↓こんな感じです。
---------------------------------------------------------------------------------------------
Sub a()
Dim x, y
x = 5
Do While Sheet4.Cells(x, 4) <> ""
'空白になるまで
For y = 4 To 51
'部品リスト最後まで
If Sheet4.Cells(x, 4).Value Like Sheet3.Cells(y, 3).Value Then
Sheet4.Cells(x, 4).Value = Sheet3.Cells(y, 5).Value
'部品座標:D5 ← 部品リスト:E4
'IDで参照し部品名(コード)に置換する
End If
Next y
x = x + 1
Loop
End Sub
-----------------------------------------------------------------------------------------------

なにかいい方法があればいいのですが、皆さんご教授いただけないでしょうか

ver.2000です。

A 回答 (4件)

Cellsには.valueは使え無い。

使うならrange().Value
このコミュは字下げが出来ないので見ずらいけど、以下に例。

Sub WK()
Dim CNT1 As Long
Dim CNT2 As Long
Dim END1 As Long
Dim END2 As Long
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet

Set Sh1 = Worksheets("Sheet4")
Set Sh2 = Worksheets("Sheet3")

END1 = Sh1.Range("D5").End(xlDown).Row '全体行数取得

For CNT1 = 5 To END1 '行数分実行
For CNT2 = 4 To 51

If InStr(Sh2.Range("C" & CNT2).Value, Sh1.Range("D" & CNT1).Value) > 0 Then


End If

Next CNT2

Next CNT1

Application.StatusBar = False
End Sub
    • good
    • 0

No.1代入部分をコピーし忘れた。


if ・・・ then の下に1行追加して下さい。
Sh1.Range("D" & CNT1).Value = Sh2.Range("E" & CNT2).Value

もう1回全部書く:これでチャント動く
Sub WK()
Dim CNT1 As Long
Dim CNT2 As Long
Dim END1 As Long
Dim END2 As Long
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet

Set Sh1 = Worksheets("Sheet4")
Set Sh2 = Worksheets("Sheet3")

END1 = Sh1.Range("D5").End(xlDown).Row '全体行数取得

For CNT1 = 5 To END1 '行数分実行
For CNT2 = 4 To 51

If InStr(Sh2.Range("C" & CNT2).Value, Sh1.Range("D" & CNT1).Value) > 0 Then
Sh1.Range("D" & CNT1).Value = Sh2.Range("E" & CNT2).Value
End If

Next CNT2

Next CNT1

Application.StatusBar = False
End Sub
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。
cellsにvalueが使えないとは今知りました...
range(cells)見たいなのでした使えるのでしょうか?

とりあえず、まるっと記述を書いていただけたのでベストアンサーにしました。

お礼日時:2016/10/03 17:02

あっているかどうかのコードを読み取る気にならないので確認します。


① Se4のIDの欄はD列になりますか?
② Se3のIDの欄はC列になりますか?
③ Se3の部品名(コード)の欄はE列になりますか?
④ Se4のIDの欄が「ABC456GHI」でSe3のIDの欄が「C456G」の時も対象になるということですか?
    • good
    • 0

ステップ実行を覚えてください。


エラー番号やエラーメッセージくらいは載せてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!