【问题标题】:How to use .Numberformat in VBA with variable string and integer value?如何在具有可变字符串和整数值的 VBA 中使用 .Numberformat?
【发布时间】:2022-01-09 10:29:53
【问题描述】:

有什么方法可以通过 VBA 代码在电子表格单元格中获得如下所示的数字格式?:EMBASAMENTO - ANDAMENTO GERAL:50%。尽管如此,“EMBASAMENTO”是字符串类型的变量,“-ANDAMENTO GERAL:”是永久文本,“50%”是以百分比格式计算并设置到单元格的值。

Private Sub Worksheet_Change()
   Nfil = 3
   Ntot = 5
   Model = "EMBASAMENTO"
   Piler = Nfil / Ntot
   Range("E7").Value = Piler
   Range("E7").NumberFormat = """ - ANDAMENTO GERAL: ""0%"
End Sub

【问题讨论】:

  • 我已将您的请求包含在内,谢谢我是论坛的新人...
  • 我在您的代码中测试了.NumberFormat,它按预期工作。你有错误吗?或者得到错误的百分比?请记住,类似 2.2 的内容将格式化为 220%。如果您预计为 2.2%,则需要将其除以 100。
  • 查看我在下面的答案中发布的代码...

标签: excel vba string variables number-formatting


【解决方案1】:

我在问题中发布的代码正在运行。我需要并且我正在尝试做的是下面这样的事情,但它不起作用:

Private Sub Worksheet_Change()
  Nfil = 3
  Ntot = 5
  Model = "EMBASAMENTO"
  Piler = Nfil / Ntot
  Range("E7").Value = Piler
  Range("E7").NumberFormat = Model & """ - ANDAMENTO GERAL: ""0%"
End Sub

此代码的最终结果应为 EMBASAMENTO- ANDAMENTO GERAL: 60%

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

变量前也需要引号,如下所示:

Private Sub Worksheet_Change()
  Nfil = 3
  Ntot = 5
  Model = "EMBASAMENTO"
  Piler = Nfil / Ntot
  Range("E7").Value = Piler
  Range("E7").NumberFormat = """" & Model & "- ANDAMENTO GERAL: ""0%"
End Sub

不确定Worksheet_Change 活动是否适合此活动,但这不是您的问题的一部分。

【讨论】:

  • 就是这样!非常感谢伙计!
猜你喜欢
  • 2016-01-02
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
相关资源
最近更新 更多