セルに°C記号と他の文字列が含まれるExcelファイルを使用しています(例: -40°C )
そして、私はそのセルの値を取得しようとしています
Dim strIn As String
strIn = Range("B2").Text
すべて正常に動作し、strIn の値は「-40°C」ですが、一度、次のように地域設定を変更しました..

strIn 値が「-40?c」として表示され始めました

?? で 0° 記号が変更されます。
助けてくれてありがとう.. リヨ・ホセ。
セルに°C記号と他の文字列が含まれるExcelファイルを使用しています(例: -40°C )
そして、私はそのセルの値を取得しようとしています
Dim strIn As String
strIn = Range("B2").Text
すべて正常に動作し、strIn の値は「-40°C」ですが、一度、次のように地域設定を変更しました..

strIn 値が「-40?c」として表示され始めました

?? で 0° 記号が変更されます。
助けてくれてありがとう.. リヨ・ホセ。
これは、VBA IDE の制限です。合計 255 の異なる文字しか表示できません (一部は印刷できません)。これは、標準の Ansii の最初の 128 文字であり、残りは地域設定のコードによって決定されます。
VBAショー?° を表示できないため (° は設定の文字コード リストに含まれていないため)。コードの残りの部分を実行すると、期待どおりに動作し、シートに正しく読み込まれるはずです。
VBA 内で ° を使用する場合は、その文字コードを利用する必要があります。Chrw(176)私のテストでは、少なくとも私のコンピューターで生成できます (はい、地域設定をタイ語に変更しました)。コードを確認するには、ループで実行できます。前に言ったように、IDE には ? が表示されますが、Excel には ° が表示されます。
これを確認するには、コードで次のテストを実行します。
debug.print Instr(strIn, "?")
'Should be 0
debug.print Instr(strIn, chrw(176))
'Should be 4
簡単な解決策の 1 つは、「?」を置き換えることです。文字列内の記号。みたいな発言
strIn = Replace(strIn, "?", "°")
あなたの問題を解決する必要があります
あなたのシンボルが値に影響を与える可能性があるものではないと仮定すると、あなたが求めvalているデータが得られるはずです。
サンプルデータ:
テキスト値() 40℃ 40 40℃ 40 40%C 40 40℃ 40