A列にある7桁の数字(ハイフンが入っていたり入っていなかったりする)を
全てハイフンが入る"000-0000"に統一したいです。
VBA
1Dim Rng1 As Range 2 For Each Rng1 In Range("A1", Cells(Rows.Count, 1).End(xlUp)) 3 If Len(Rng1.Text) = 7 And IsNumeric(Rng1.Value) Then 4 Rng1.Value = Format(Rng1.Value, "000-0000") 5 End If 6 Next
ネットにあるコードを使用しましたが、反映されません。
自分でもFormat関数を使用してコードを書きましたが、値が全て"000-0000"になってしまいます…
何か書き方が違うのでしょうか?
問題は再現できませんでした。
A列で7桁の数字のセルは、たとえば1234567なら123-4567になりました。
なので原因はわかりませんが、試しにA列の書式を予め標準か文字列にしてみてはどうでしょうか。
提示されていない部分のコードで何かしている可能性が大。
0にしているとか。
Rng1.Valueの変換前の値をDebug.Printなどでご確認いただきご提示ください。
皆様、ご回答ありがとうございます。
データに「 ' 」が入り混じっていたのでそちらが原因かもしれません。
色々とご教示いただきありがとうございました。
12356さん、その場合、IsNumeric()がfalseになるでしょうし、Len()の結果も異なるので、IFの中は実行されないと思うのですが。
当該セルで、Format()が実行されているのは確認されましたか?
YT0014様、ご回答ありがとうございます。
上記コードでは実行されませんでした。
見直しをしてみます。

回答3件
あなたの回答
tips
プレビュー