- ベストアンサー
Excel 2007 マクロ 別シートの情報を反映する方法
- Sheet1のD列とSheet2のM列で同じ値があれば、Sheet1のE列の値をSheet2のN列に反映するマクロを作成しました。
- マクロに問題点があればご指摘ください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No.2・4です! 前回のNo.4は無視してください。 If Val(ws2.Cells(j, 13)) = Val(ws1.Cells(i, 4)) Then としてみてください。 何度もごめんなさいね。m(__)m
その他の回答 (5)
- merlionXX
- ベストアンサー率48% (1930/4007)
> 数字が文字列になっているや数値になっている等の理由で > 同じ数字でも異なるものとして認識されることはございますか。 はい、それは当然です。 数値の数字と文字列の数字は異なるものですから。 それを同じとしたいならVal関数を使うか*1をするかですね。
お礼
ご回答ありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
No.2です! 補足を読ませてもらいました。 文字列の数字と数値が混在しているわけですかね? もしそうであって、数字の文字列を数値として扱いたい場合は If ws2.Cells(j, 13).Value = ws1.Cells(i, 4).Value Then としてみてはどうでしょう? 本来であればこの 「.Vlue」は省かずに入力する習慣をつけた方が良いのかもしれません。 外していたらごめんなさいね。m(__)m
- merlionXX
- ベストアンサー率48% (1930/4007)
hyogara777さんの提示したコードは、直すところといったら Dim i As Long, j As Long Dim ws1 As Worksheet, ws2 As Worksheet と書いた方がいいというくらいで、お書きになった > Sheet1のD列とSheet2のM列で同じ値があれば、 > Sheet1のE列の値をSheet2のN列に反映する を正しく表現しています。 そのままで動くはずです。 そうならないとしたら前提が違っているのでは?
補足
ご回答ありがとうございます。 すみません。ご回答頂きました3人の方に同じ補足の質問をさせて頂きます。 If ws2.Cells(j, 13) = ws1.Cells(i, 4) Then それぞれのセルには3桁の数字が入っています。 それぞれの数字を比較する場合、 数字が文字列になっているや数値になっている等の理由で 同じ数字でも異なるものとして認識されることはございますか。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! すでに回答は出ていますので、参考程度で、 列番号も数値にしてみてはどうでしょうか? こんな感じですかね? 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
補足
ご回答ありがとうございます。 すみません。ご回答頂きました3人の方に同じ補足の質問をさせて頂きます。 If ws2.Cells(j, 13) = ws1.Cells(i, 4) Then それぞれのセルには3桁の数字が入っています。 それぞれの数字を比較する場合、 数字が文字列になっているや数値になっている等の理由で 同じ数字でも異なるものとして認識されることはございますか。
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のように変えてみてはいかがでしょう。 For i = 2 To ws1.Range("D65536").End(xlUp).Row For j = 2 To ws2.Range("M65536").End(xlUp).Row
補足
ご回答ありがとうございます。 すみません。ご回答頂きました3人の方に同じ補足の質問をさせて頂きます。 If ws2.Cells(j, 13) = ws1.Cells(i, 4) Then それぞれのセルには3桁の数字が入っています。 それぞれの数字を比較する場合、 数字が文字列になっているや数値になっている等の理由で 同じ数字でも異なるものとして認識されることはございますか。
お礼
ご回答ありがとうございました。うまくいきました。大変助かりました。