「これはヤバかったな」という遅刻エピソード

Excel vba で1と10を正確に判断させる方法を教えてください。

TからU列に1と入力があればAに変換、10と入力があればJに変換させたいのですが、下記のコードではうまくいかず、10なのにA0と表示されます。
上手く1を、1として判断させるコードをご教示いただけないでしょうか?
よろしくお願いします!!

Range(.Cells(2,”T”), .Cells(maxrow,”U”)).Replace What:=“1” , LookAt:=xlWhole, Replacement:=“A”

Range(.Cells(2,”T”), .Cells(maxrow,”U”)).Replace What:=“10” , LookAt:=xlWhole, Replacement:=“J”

A 回答 (3件)

ちょっと解せないですね。


LookAt:=xlWholeは完全一致指定ですから、1のみ対象で
10がA0にはなりません。
A0となるのはxlPart指定です。

試しに動かしましたが、正しく変換されました。
文字列対数値でも変換されました。
ここだけ切り出して試したことありますか?

他に似たようなロジックでxlParありませんか?
    • good
    • 2
この回答へのお礼

ご回答ありがとうございます。
私もLookAt:=xlWholeは完全一致と覚えていたので、??となったのですがもしかしたら前後のコードでおかしなところがあるのかも知れませんね。その辺を試してみようと思います。

お礼日時:2023/01/03 22:34

解説すると、元のコードだと、「10」の1が1行目でAに変換されてしまう、ということですね。

    • good
    • 1

1行目と2行目の順番を逆にしてください。

    • good
    • 1
この回答へのお礼

ご教示頂き、ありがとうございます!
そんな簡単な事だったんですね!

お礼日時:2022/12/27 20:35

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報