如何在VBA中简化此表达式

  • 本文关键字:表达式 VBA excel vba
  • 更新时间 :
  • 英文 :

Range("K4") = FormatPercent(Range("K2") / Range("K3"))
Range("L4") = FormatPercent(Range("L2") / Range("L3"))
Range("M4") = FormatPercent(Range("M2") / Range("M3"))
Range("N4") = FormatPercent(Range("N2") / Range("N3"))

我可以把这个打印出来,但我相信有一个更简单的方法

我试过了范围("K4:N4"(=FormatPercent(范围("K2:N2"(/范围("K3:N3"((但它给了我一个错误。我还是VBA的新手,一直在寻求建议。也许带有For循环的东西会更好用。

写入百分比

  • FormatPercent会将结果转换为字符串
  • 如果你需要百分比作为数字,你可以使用以下其中一个
Sub WritePercentages()

Dim ws As Worksheet: Set ws = ActiveSheet ' improve!

' Using 'Worksheet.Evaluate' with hard-coded source ranges' addresses
' ('K2:N2, K3:N3') to write values.
With ws.Range("K4:N4")
.NumberFormat = "0.00%"
.Value = ws.Evaluate("K2:N2/K3:N3")
End With
' Using 'Worksheet.Evaluate' with 'Range.Offset' to retrieve
' the source ranges' addresses ('$K$2:$N$2, $K$3:$N$3') to write values.
'    With ws.Range("K4:N4")
'        .NumberFormat = "0.00%"
'        .Value = ws.Evaluate(.Offset(-2).Address & "/" & .Offset(-1).Address)
'    End With
' Using 'Range.Formula' with hard-coded source ranges' addresses
' ('K2, K3') to write formulas ('K2/K3', 'L2/L3'...).
'    With ws.Range("K4:N4")
'        .NumberFormat = "0.00%"
'        .Formula = "=K2/K3"
'    End With
End Sub

最新更新