
下は敢えて作った例題ですが、
該当のセルの設定を『標準』にすると『等しい』が出ません。
文字列や、数値にすると出ます(等しいと判定されます)
理由が分かりません。
宜しくお願いします。
excel2003です。
Option Explicit
Sub test()
Range("C2").Value = "34567"
Range("C3").Value = "4567"
MsgBox Right(Range("C2").Value, Len(Range("C2").Value) - 1)
MsgBox Range("C3").Value
If Right(Range("C2").Value, Len(Range("C2").Value) - 1) = Range("C3").Value Then MsgBox "等しい3"
End Sub
No.1ベストアンサー
- 回答日時:
>>数値にすると出ます
本当ですか??
標準が駄目な理由は、Right関数が文字列を扱う関数だからです。
その関数の値も文字列として扱われます。
一方でRange("C3").Valueには数値が入るので、比較の右辺は数値として扱われ、型が一致しないのでfalseです。
C3セルの形式を文字列にして置くと、右辺も文字型として扱われtrueになります。
結構面倒で、ここにはいつも気を使ってます。
Right関数、left関数、mid関数は特に注意が要り、中間結果を何処かのセルに一旦入れて、その値と比較するとかが要ります。
早速ありがとうございました。
まず、数値で出るは誤りでした。
色々やっていたので、ケースが錯綜していました、
申し訳ありませんでした。
ご説明で良く分かりました。
確かに、入力を文字にすれば等しいと判断されました。
上記のコードを書いていたのですが、
結果がおかしく質問しました。
ご指摘のように、一旦 as longにクッションして対応していました。
right関数には気を付けます。
お世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
貼り付けで複数セルに貼り付けたい
-
枠に収まらない文字を非表示に...
-
エクセルの書式設定の表示形式...
-
エクセルで指定したセルのどれ...
-
Excel for Mac使用中ポインタが...
-
数式を残したまま、別のセルに...
-
セルをクリック⇒そのセルに入力...
-
vba テキストボックスとリフト...
-
Excelで住所を2つ(町名迄と番...
-
Excel2003 の『コメント』の編...
-
Excelで数式内の文字色を一部だ...
-
エクセル オートフィルタで絞...
-
excelの特定のセルの隣のセル指...
-
EXCELのセルの中の半角カンマの...
-
(Excel)数字記入セルの数値の後...
-
Excel 例A(1+9) のように番地の...
-
EXCEL VBA セルに既に入...
-
【Excel】 セルの色での判断は...
-
Excelでのコメント表示位置
-
エクセルの一つのセルに複数の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba テキストボックスとリフト...
-
貼り付けで複数セルに貼り付けたい
-
エクセルで指定したセルのどれ...
-
枠に収まらない文字を非表示に...
-
セルをクリック⇒そのセルに入力...
-
エクセル
-
数式を残したまま、別のセルに...
-
(Excel)数字記入セルの数値の後...
-
エクセル オートフィルタで絞...
-
エクセルの書式設定の表示形式...
-
Excel 例A(1+9) のように番地の...
-
エクセルの一つのセルに複数の...
-
excelの特定のセルの隣のセル指...
-
EXCEL VBA セルに既に入...
-
Excelでのコメント表示位置
-
エクセルのセルの枠を超えて文...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
【Excel】 セルの色での判断は...
おすすめ情報