【问题标题】:Changing US percentage in German percentage改变德国百分比中的美国百分比
【发布时间】:2017-12-15 08:47:32
【问题描述】:

我的问题是我使用的是德语版的 Excel,而且我的输入是美国数字格式。

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

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

当我使用这个简单的宏将所有句点更改为逗号时,单元格的值会被格式化为文本,但我需要它的百分比。

【问题讨论】:

  • 这些值的来源是什么?他们来自哪里?如果您粘贴它们,您可以将 Excel 文件的十进制符号从 , 更改为 .,以便它接受它作为值而不是文本,然后将其更改回 ,。在德语 Excel 中,您可以在以下位置找到该选项: Datei > Optionen > Erweitert > Bearbeitungsoptionen > Dezimaltrennzeichen 并将其更改为 . 而不是 , 然后插入您的值(Trennzeichen vom Betriebsystem übernehmen 必须是起初停用)
  • 谢谢,我知道我可以在选项中更改它,但我不想每次导入新值时都更改它。我的问题是我需要带有昏迷的值。没有代码可以改变它吗?我的价值观来源于美国的利率。

标签: vba excel


【解决方案1】:

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

Replace 返回字符串而不是值的问题。
所以需要把字符串转成数字。

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 %

【讨论】:

  • 对不起,它不起作用。我在图片中放入了插入值后的外观。也许它会帮助你。
  • 正如我在评论中告诉你的那样,这只有通过更改 Excel 选项才能达到最佳效果。我的代码仅适用于 55.52 之类的值。对于55.52% 之类的值,您需要先删除百分号,然后使用.NumberFormat 将单元格格式化为百分比。
【解决方案2】:

现在我刚刚制作了一个 Makro,将 DecimalSeparator 的选项更改为“。”然后回到 "," 就可以了。

但感谢您的帮助!

Sub Makro1()

    With Application
        .DecimalSeparator = "."
        .ThousandsSeparator = ","
    End With
End Sub

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

【讨论】:

  • 是的,这正是我的本意。注意:您也可以接受自己的答案作为解决方案。
  • 谢谢,不知道!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多