• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel 2007 マクロ 別シートの情報を反映する方法)

Excel 2007 マクロ 別シートの情報を反映する方法

このQ&Aのポイント
  • Sheet1のD列とSheet2のM列で同じ値があれば、Sheet1のE列の値をSheet2のN列に反映するマクロを作成しました。
  • マクロに問題点があればご指摘ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.2・4です! 前回のNo.4は無視してください。 If Val(ws2.Cells(j, 13)) = Val(ws1.Cells(i, 4)) Then としてみてください。 何度もごめんなさいね。m(__)m

hyogara777
質問者

お礼

ご回答ありがとうございました。うまくいきました。大変助かりました。

その他の回答 (5)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.6

> 数字が文字列になっているや数値になっている等の理由で > 同じ数字でも異なるものとして認識されることはございますか。 はい、それは当然です。 数値の数字と文字列の数字は異なるものですから。 それを同じとしたいならVal関数を使うか*1をするかですね。

hyogara777
質問者

お礼

ご回答ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.2です! 補足を読ませてもらいました。 文字列の数字と数値が混在しているわけですかね? もしそうであって、数字の文字列を数値として扱いたい場合は If ws2.Cells(j, 13).Value = ws1.Cells(i, 4).Value Then としてみてはどうでしょう? 本来であればこの 「.Vlue」は省かずに入力する習慣をつけた方が良いのかもしれません。 外していたらごめんなさいね。m(__)m

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

hyogara777さんの提示したコードは、直すところといったら Dim i As Long, j As Long Dim ws1 As Worksheet, ws2 As Worksheet と書いた方がいいというくらいで、お書きになった > Sheet1のD列とSheet2のM列で同じ値があれば、 > Sheet1のE列の値をSheet2のN列に反映する を正しく表現しています。 そのままで動くはずです。 そうならないとしたら前提が違っているのでは?

hyogara777
質問者

補足

ご回答ありがとうございます。 すみません。ご回答頂きました3人の方に同じ補足の質問をさせて頂きます。 If ws2.Cells(j, 13) = ws1.Cells(i, 4) Then それぞれのセルには3桁の数字が入っています。 それぞれの数字を比較する場合、 数字が文字列になっているや数値になっている等の理由で 同じ数字でも異なるものとして認識されることはございますか。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! すでに回答は出ていますので、参考程度で、 列番号も数値にしてみてはどうでしょうか? こんな感じですかね? Sub Rist() Dim i, j As Long Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("Sheet1") Set ws2 = Worksheets("Sheet2") For i = 2 To ws1.Cells(Rows.Count, 4).End(xlUp).Row For j = 2 To ws2.Cells(Rows.Count, 13).End(xlUp).Row If ws2.Cells(j, 13) = ws1.Cells(i, 4) Then ws2.Cells(j, 14) = ws1.Cells(i, 5) End If Next j Next i End Sub m(__)m

hyogara777
質問者

補足

ご回答ありがとうございます。 すみません。ご回答頂きました3人の方に同じ補足の質問をさせて頂きます。 If ws2.Cells(j, 13) = ws1.Cells(i, 4) Then それぞれのセルには3桁の数字が入っています。 それぞれの数字を比較する場合、 数字が文字列になっているや数値になっている等の理由で 同じ数字でも異なるものとして認識されることはございますか。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

次のように変えてみてはいかがでしょう。 For i = 2 To ws1.Range("D65536").End(xlUp).Row For j = 2 To ws2.Range("M65536").End(xlUp).Row

hyogara777
質問者

補足

ご回答ありがとうございます。 すみません。ご回答頂きました3人の方に同じ補足の質問をさせて頂きます。 If ws2.Cells(j, 13) = ws1.Cells(i, 4) Then それぞれのセルには3桁の数字が入っています。 それぞれの数字を比較する場合、 数字が文字列になっているや数値になっている等の理由で 同じ数字でも異なるものとして認識されることはございますか。

関連するQ&A