【发布时间】:2017-06-05 01:20:17
【问题描述】:
我是 VBA 的新手,我有一个范围,当范围内的值小于 0 时,我会将该值乘以 1000,然后使用 NumberFormat 方法更改其格式。但不知何故,它不起作用。错误代码在这一行:RngToThousand.NumberFormat = "$-#,##0,""K"""。错误说“需要对象”,我猜数据类型有问题。任何帮助将不胜感激,谢谢。
下面是我的代码:
Dim Rng As Range
Dim RngToNum As Range
Set RngToNum = Range("H2:J21")
For Each Rng In RngToNum
If Rng.Value < 0 Then
RngToThousand = Rng.Value * 1000
RngToThousand.NumberFormat = "$-#,##0,""K"""
Else: Rng.NumberFormat = ""
End If
Next
【问题讨论】:
-
你在哪里声明 RngToThousand?它应该是一个范围对象。是吗?
-
你为什么要乘以 1000?如果原始数字是 -4000,您最终将显示
$-4,000K,它太大了 1000 倍(假设您使用K表示数千)。 -
没有足够的上下文来回答这个问题 IMO。变量突然冒出来,这不是minimal reproducible example... 它几乎无法编译。确保你的模块顶部有
Option Explicit:如果你的代码仍然可以编译,那么你需要edit你的帖子,这样我们就可以看到RngToThousand来自哪里。 -
您可以在 1 行中为整个范围完成所有操作
RngToNum.NumberFormat = "[<0]""$""#,""$-""#,##0,""K"";"another format for else"