如何在VBA代码的输出中用“逗号”代替“point”?

最初,重要的是要注意我使用巴西葡萄牙语的 MS Excel。

这是我的代码:

Dim C1 As Integer Dim C2 As Integer Dim Cod As String C1 = Worksheets("Dictionary").Range("D1").Value C2 = Worksheets("Dictionary").Range("D2").Value Cod = C1 & "." & C2 Worksheets("Dictionary").Range("D3").Value = Cod 

细胞:

D1 = 1

D2 = 2

我预计输出将是“1.2”,但是它是“1,2”!

我究竟做错了什么?

我为生锈的英语道歉

谢谢!

在将值输出到范围之前试试这个:

 Worksheets("Dictionary").Range("D3").NumberFormat = "@" 

这将单元格的格式更改为文本,从而防止Excel将您写入的值解释为数字。

您在“巴西葡萄牙语”中使用您的Excel。 更改可能是由于Windows控制面板中的“国际设置”。

如果您的国际设置将“,”定义为小数点分隔符,则在Visual Basic中进行分配时,Excel会将点转换为逗号。 这种行为使VBA代码独立于语言环境设置,因此使得代码在国际上下文中是可移植的(我认为这是行为的意图)。

如果巴西葡萄牙人需要点作为分隔符, 然后设置您的计算机使用点作为小数点分隔符,但是,这应该不重要,因为当您将电子表格发送到巴西,Excel将使用正确的小数点分隔符(我假设数字以二进制浮点forms存储,所以点或逗号只是表示的问题)。

编辑:上面的文字删除线似乎是一个解决方法,因为设置国际seting /小数分隔符没有任何区别的最终结果。

 Sub Replace() Sheet1.Range("B1").Value = "=SUBSTITUTE(A1,""."","","")" End Sub 

你可以相应地改变你的范围。

示例 – 范围(“B1:B3”)。值=“= SUBSTITUTE(A1:A3,”“。”,“”,“”)“