Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何显示°;数据库中Excel中的C符号?_Vba_Excel_Visual Studio Macros - Fatal编程技术网

Vba 如何显示°;数据库中Excel中的C符号?

Vba 如何显示°;数据库中Excel中的C符号?,vba,excel,visual-studio-macros,Vba,Excel,Visual Studio Macros,我正在使用一个excel文件,其中有一个单元格包含带其他字符串的°C符号(例如-40°C ) 我试图通过使用 Dim strIn As String strIn = Range("B2").Text 所有的精细加工都有一个值“-40°C”,但一旦我改变了我的区域设置,如下所示 它开始将strIn值显示为“-40°c” 0°符号更改为 提前谢谢你的帮助。。 Liyo Jose.一个快速解决方案是替换字符串中的“?”符号。像这样的陈述 strIn = Replace(strIn

我正在使用一个excel文件,其中有一个单元格包含带其他字符串的°C符号(例如-40°C )

我试图通过使用

    Dim strIn As String
    strIn = Range("B2").Text
所有的精细加工都有一个值“-40°C”,但一旦我改变了我的区域设置,如下所示

它开始将strIn值显示为“-40°c”

0°符号更改为

提前谢谢你的帮助。。
Liyo Jose.

一个快速解决方案是替换字符串中的“?”符号。像这样的陈述

strIn = Replace(strIn, "?", "°")

应该可以解决您的问题

这是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

假设您的符号永远不会影响值,
val
应该为您提供所需的数据

示例数据:

text val() 40°C 40 40?C 40 40%C 40 40C 40 text val() 40摄氏度40 40?C 40 40%C 40 40C 40
谢谢Daniel这么详细的解释,请尝试。。实际上,我在中设置了一个记录,我有一个字符串,其中包含-40°C,-60°C等,我使用dataSheet.Range(dataSheet.Cells(lastRow+1),dataSheet.Cells(lastRow+1,1)).CopyFromRecordset allData
将记录集写入excel工作表,但即使在excel工作表中,它也呈现为-40°C