以德国百分比改变美国百分比

我的问题是,我使用德语版本的Excel,我的input是美国数字格式。

我需要一个代码,将十进制数字中的所有点都更改为昏迷,但将百分比格式保留为单元格值。

Sub Makro1() Columns("J:J").Select Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub 

当我使用这个简单的macros来把所有的句点改成逗号时,单元格的值被格式化为文本,但是我需要它的百分比。

不得不说,这是一个麻烦的解决方法,我build议更改Excel选项(插入之前和之后)的十进制符号,而不是使用此代码。

这个问题使用Replace返回一个string不是一个值。
所以你需要将string转换成数字。

值为55.52示例

 If IsNumeric(Selection.Value) Then Selection.Value = CDbl(Replace(Selection.Value, ".", ",")) End If 

值例如55.52%

 Dim Text As String Text = Selection.Value If Right$(Text, 1) = "%" Then Text = Left$(Text, Len(Text) - 1) 'remove % sign If IsNumeric(Text) Then With Selection .Value = CDbl(Replace(Text, ".", ",")) / 100 .NumberFormat = "0.00%" 'change number format to percent End With End If End If 

请注意,我们需要将值除以100 ,因为0,5552代表55,52 %

现在我只是把Makro改成了DecimalSeparator的opion来“”。 然后回到“,”它工作。

但是,谢谢你的帮助!

 Sub Makro1() With Application .DecimalSeparator = "." .ThousandsSeparator = "," End With End Sub Sub Makro2() With Application .DecimalSeparator = "," .ThousandsSeparator = "." End With End Sub