
No.4ベストアンサー
- 回答日時:
No3です。
>この、プログラムをほかの作成したシートで使用する場合は大文字のアルファベットを
そのシートの列に変えればいいですか?
はい、それで結構です。シート名も変えてください。
>また今回は2行目を指定していますが、違う行から探す時はどこを変更すればいいでしょうか?
シート1の開始行を5行に変える場合、
For row1 = 2 To lastrow1 を
For row1 = 5 To lastrow1 のようにしてください。
シート2の開始行を6行に変える場合、
For row2 = 2 To lastrow2 を
For row2 = 6 To lastrow2 のようにしてください。
この回答へのお礼
お礼日時:2024/10/03 04:15
素人質問に丁寧に回答していただき
大変解りやすかったです。
教えてもらったことを試していきたいと思います。
また、困ったことがあれば質問させてもらいます。
この度はありがとうございました。
No.3
- 回答日時:
No2です。
以下のマクロを標準モジュールに登録してください。
不明点があれば、補足してください。
Option Explicit
Public Sub 商品名設定()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim lastrow1 As Long
Dim lastrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim dicT As Object
Dim cd7 As String '商品コードの左7桁
Set ws1 = Worksheets("シート1")
Set ws2 = Worksheets("シート2")
Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義
lastrow1 = ws1.Cells(Rows.Count, "B").End(xlUp).row 'B列の最大行取得
lastrow2 = ws2.Cells(Rows.Count, "D").End(xlUp).row 'B列の最大行取得
For row2 = 2 To lastrow2
cd7 = Left(ws2.Cells(row2, "D").Value, 7)
If cd7 <> "" Then
If dicT.exists(cd7) = False Then
dicT(cd7) = ws2.Cells(row2, "G").Value
End If
End If
Next
For row1 = 2 To lastrow1
cd7 = Left(ws1.Cells(row1, "B").Value, 7)
ws1.Cells(row1, "C").ClearContents
If cd7 <> "" Then
If dicT.exists(cd7) = True Then
ws1.Cells(row1, "C").Value = dicT(cd7)
End If
End If
Next
MsgBox ("完了")
End Sub
No.2
- 回答日時:
補足要求です。
1.シート1のシート名は、"シート1"であってますか。
2.シート2のシート名は、"シート2"であってますか。
3.シート1の1行目は、見出しで、データは2行目からでしょうか。(シート2も同様)
No.1
- 回答日時:
色々考えずにゴリゴリ。
シート名をSheet1、Sheet2とする。
行END1 = WS1.Range("B65536").End(xlUp).Row '最終行取得
行END2 = WS2.Range("D65536").End(xlUp).Row '最終行取得
For 行1 = 1 To 行END1
For 行2 = 1 To 行END2
If Left(WS1.Range("B" & 行1).Value, 7) = Left(WS2.Range("D" & 行2).Value, 7) Then '先頭7桁が等しい場合は
WS1.Range("C" & 行1).Value = WS2.Range("G" & 行2).Value '転送
End If
Next 行2
Next 行1
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大学のレポート A4で1枚レポー...
-
Microsoft Officeを2台目のPCに...
-
Microsoft Formsの「個人情報や...
-
エクセルの式がわかる方がおら...
-
Excelで〇のついたものを抽出し...
-
Office 2021 Professional Plus...
-
Microsoft365、ページ設定がで...
-
Office2024インストール後の疑問点
-
office2019 のoutlookは2025年1...
-
エクセルで質問です。 ハイパー...
-
Teams内でショートカットって貼...
-
Office2021を別のPCにインスト...
-
outlookのメールが固まってしま...
-
マイクロソフト オフィスのサポ...
-
Excel 日付を比較したら、同じ...
-
エクセル 日付順に並べてかえた...
-
表の作成について
-
マクロ自動コピペ 貼り付ける場...
-
officeソフト 本名変更
-
エクセル:一定間隔で平均値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
大学のレポート A4で1枚レポー...
-
エクセルの式がわかる方がおら...
-
Office2024インストール後の疑問点
-
Microsoft Formsの「個人情報や...
-
Excelで〇のついたものを抽出し...
-
マイクロソフト オフィスのサポ...
-
office2019 のoutlookは2025年1...
-
outlookのメールが固まってしま...
-
Office2021を別のPCにインスト...
-
エクセル 日付順に並べてかえた...
-
Office 2021 Professional Plus...
-
エクセルで質問です。 ハイパー...
-
Excel 日付を比較したら、同じ...
-
マクロ自動コピペ 貼り付ける場...
-
エクセル:一定間隔で平均値を...
-
Teams内でショートカットって貼...
-
Microsoft365、ページ設定がで...
-
Microsoft365について
-
別シートの年間行事表をカレン...
おすすめ情報
回答ありがとうございます。
シート1はシート1でシート2は2で合っています。
シート1の1行目は見出し、2行目はデータで合っています。
大変恐縮なのですが、プログラム全体の書き方を参考にしたいので記載していただけるとありがたいです。
宜しくお願いします。
ありがとうございます。
これで試してみます。
この、プログラムをほかの作成したシートで使用する場合は大文字のアルファベットを
そのシートの列に変えればいいですか?
また今回は2行目を指定していますが、違う行から探す時はどこを変更すればいいでしょうか?
素人質問ばかりですみませんが回答お願いします。