如何在vba中的循环内使用NumberFormat方法

时间:2017-06-05 01:20:17

标签: excel vba excel-vba

我是VBA的新手,我有一个范围,当范围内的值小于0时,我会将该值乘以1000,然后使用NumberFormat方法更改其格式。但不知怎的,它不起作用。错误代码在此行:RngToThousand.NumberFormat = "$-#,##0,""K"""。错误说“需要对象”,我猜数据类型有问题。 Anyhelp将不胜感激,谢谢。

以下是我的代码:

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

1 个答案:

答案 0 :(得分:1)

NumberFormat需要一个像Range这样的对象,而你的RngToThousand变量不是一个对象。我测试了以下内容并且工作正常:

    If Rng.Value < 0 Then
        Rng.Value = Rng.Value * 1000
        Rng.NumberFormat = "$-#,##0,""K"""
    ...