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

时间:2015-04-06 09:49:13

标签: string excel vba formatting

在表1中,值为45,因此我想在表格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 个答案:

答案 0 :(得分:1)

你可以用两(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")
    

答案 1 :(得分:0)

这不起作用,因为在第一种情况下,您尝试将数字n格式化为00n,始终返回n,在第二种情况下,您执行完全相同的操作,然后将结果转换为字符串。 您必须先将n转换为字符串。所以在你的情况下:

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