シート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です。
No.1
- 回答日時:
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
No.2ベストアンサー
- 回答日時:
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
ご丁寧にありがとうございます。
cellsにvalueが使えないとは今知りました...
range(cells)見たいなのでした使えるのでしょうか?
とりあえず、まるっと記述を書いていただけたのでベストアンサーにしました。
No.3
- 回答日時:
あっているかどうかのコードを読み取る気にならないので確認します。
① Se4のIDの欄はD列になりますか?
② Se3のIDの欄はC列になりますか?
③ Se3の部品名(コード)の欄はE列になりますか?
④ Se4のIDの欄が「ABC456GHI」でSe3のIDの欄が「C456G」の時も対象になるということですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
IIF関数の使い方
-
VBAでのリスト不一致抽出について
-
VBマクロ 色の付いたセルを...
-
マクロ 最終列をコピーして最終...
-
VBAを使って検索したセルをコピ...
-
エクセル VBA ユーザーフォー...
-
VBA A列にありB列にないものま...
-
B列の最終行までA列をオート...
-
複数処理 Worksheet_Change(ByV...
-
超難 日付に対するクロス集計
-
文字列の結合を空白行まで実行
-
VBA 値と一致した行の一部の列...
-
空白セルをとばして転記
-
エクセルVBAにて =A1=B1とすれ...
-
【VBA】2つのシートの値を比較...
-
エクセルVBA intersect colu...
-
VBAのFind関数で結合セルを検索...
-
オートフィルタをマクロで作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報