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

Log*_*man 17 excel formatting vba

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

Set cel = Sheet.worksh.Cells(1, 1)
cel.ColumnWidth = 10
cel.Value = e.Name
cel.NumberFormat = "0000"
Run Code Online (Sandbox Code Playgroud)

数字在哪里e.Name,比如"0720".这显示在工作表上就好了,但如果我做这样的事情:

Msgbox Sheet.worksh.Cells(1, 1).Value
Run Code Online (Sandbox Code Playgroud)

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

GSe*_*erg 25

你将一个数字与其文本表示混淆.

你不想要.Text财产,.Value但是,你可能会遇到问题.

  • 小心文本属性.如果单元格看起来像这样"####"那就是它要回击给你的东西.使用Lance Roberts的方法更安全.只是来自经验的警告. (8认同)

Lan*_*rts 13

用这个:

Msgbox Format(Sheet.worksh.Cells(1,1).Value, "0000")
Run Code Online (Sandbox Code Playgroud)


Jon*_*ier 7

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

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