VBA Excel将数字格式化为string

在工作表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")) 

您可以通过以下两种方式来实现这一点:

  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,并且总是返回n,在第二种情况下,你完全一样,然后把结果转换成string。 您必须首先将n转换为string。 所以在你的情况下:

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