【问题标题】:Write formula to cell does not accept sys decimal separator / Reginal Format / Excel VBA [duplicate]将公式写入单元格不接受 sys 小数分隔符/区域格式/Excel VBA [重复]
【发布时间】:2016-08-05 04:51:19
【问题描述】:

如果 windows 采用 USFormat(小数 = 点),则下面的示例代码运行良好,但在以荷兰语格式(小数 = 逗号)运行时会中断。

为什么?

有没有办法以逗号-十进制格式将公式写入单元格,而不需要将每个逗号替换回原点?

Sub TestHandleRegionalFormat()

    SourceData = "-.1"

    Application.UseSystemSeparators = True
    ActiveSheet.Cells(1, 2) = GetDecimalSeparator
    ActiveSheet.Cells(2, 2) = Application.DecimalSeparator

    If GetDecimalSeparator = "," Then SourceData = Replace(SourceData, ".", ",")

    ActiveSheet.Cells(3, 2) = SourceData + 1000

    ActiveSheet.Cells(4, 2) = "=" & SourceData & "+1000"

End Sub
Public Function GetDecimalSeparator()
    'http://stackoverflow.com/a/32992918/4797660
    GetDecimalSeparator = Mid(Format(1000, "#,##0.00"), 6, 1)

End Function

USFormat 输出

荷兰语格式输出

【问题讨论】:

    标签: excel excel-formula decimal-point regional-settings vba


    【解决方案1】:

    您正在尝试使用.Cells(4, 2) 返回的Range 的默认属性(即.Value)设置单元格的公式。要将单元格设置为使用当前系统区域设置的公式,您需要改用FormulaLocal 属性。

    这应该可行:

    ActiveSheet.Cells(4, 2).FormulaLocal = "=" & SourceData & "+1000"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 2022-11-22
      相关资源
      最近更新 更多