如何在工作表中格式化的VBA中检索Excel单元格值?

时间:2011-08-03 20:31:16

标签: excel vba formatting

我需要在数字列表中保留前导零。这些数字是这样添加的(在循环中,但这只是使用(1,1)的一个例子:

Set cel = Sheet.worksh.Cells(1, 1)
cel.ColumnWidth = 10
cel.Value = e.Name
cel.NumberFormat = "0000"

e.Name是数字,例如“0720”。这显示在工作表上就好了,但是如果我做这样的事情:

Msgbox Sheet.worksh.Cells(1, 1).Value

我得到“720”。我需要它是“0720”,我知道我可以使用Len()进行检查,并以这种方式添加零,但我想知道是否有更直接的方法使用Range对象来为我做这个。< / p>

4 个答案:

答案 0 :(得分:25)

您将数字与其文字表示混淆。

您需要.Text属性,而不是.Value,但是you might have problems with it

答案 1 :(得分:13)

使用此:

Msgbox Format(Sheet.worksh.Cells(1,1).Value, "0000")

答案 2 :(得分:7)

更好的是,如果您不确定格式是什么:

Msgbox格式(Sheet.worksh.Cells(1,1).Value,Sheet.worksh.Cells(1,1).NumberFormat)

答案 3 :(得分:0)

聚会晚了一点,但是您总是可以尝试分别调用值和数字格式,例如:

  

Msgbox Application.WorksheetFunction.Text(Sheet.worksh.Cells(1,   1).Value,Sheet.worksh.Cells(1,1).NumberFormat)