VBA Excel 将数字格式化为字符串

VBA Excel formatting numbers to strings

在 sheet 1 中,值是 45 所以我想在 sheet RESULTADO 中使用这样的格式:0045

Worksheets("RESULTADO").Range("B" & row_counter) = Format(Worksheets(1).Range("B" & row_counter).Value, "0000")

为什么这不起作用?

我也试过这个,但都不行:

Worksheets("RESULTADO").Range("B" & row_counter) = CStr(Format(Worksheets(1).Range("B" & row_counter).Value, "0000"))

您可以通过两 (2) 种方式做到这一点:

  1. 先设置数字格式

    With Worksheets("RESULTADO").Range("B" & row_counter)
        .NumberFormat = "@"
        .Value = Format(Worksheets(1).Range("B" & row_counter).Value, "0000")
    End With
    
  2. 使用'撇号

    Worksheets("RESULTADO").Range("B" & row_counter) = "'" & _
        Format(Worksheets(1).Range("B" & row_counter).Value, "0000")
    

这是行不通的,因为在第一种情况下,您尝试将数字 n 格式化为 00n,但总是 returnn,在第二种情况下,您做的完全相同,然后您转换结果到一个字符串。 您必须先将 n 转换为字符串。所以在你的情况下:

Worksheets("RESULTADO").Range("B" & row_counter) = Format(CStr(Worksheets(1).Range("B" & row_counter).Value), "0000")