如何让excel将零识别为一个string?

我需要将数据validation放在一系列单元格中,以便在这些单元格中input不less于9个字符。 问题是有些时候,这9个字符将是所有数字…并且“数字string”将以零开始…例如012345678.Excel将删除零,因为它将string识别为数字,我的validation将启动在说我需要input9个字符到该字段。

有任何想法吗?

将单元格的范围格式化为文本 。 这将防止Excel修剪前导零。

Format Cells对话框的屏幕截图

 =TEXT(Cellwithnumber,"000000000") 

通常情况下,如果在input数据(通过右键→格式化单元格)或类似的东西之前将范围格式化为文本

 Dim c As Object For Each c In Selection.Cells c.NumberFormat = "@" Next c 

要么

 ActiveSheet.Cells.NumberFormat = "@" 

Excel不会削减前导零。

如果其他用户正在使用你的工作表,你可以保护单元格格式,所以他们不会意外地把它改回到数字上,比如说把数据粘贴成格式。

您可以创build一个新的单元格并将其作为文本公式input。 说你想从0得到的值是A1,在一个单元格中input你的公式:

 =TEXT(A1,"000000000") 

这将显示领先的0。

如果你想使用VBA:

 rngTarget.NumberFormat = "@" ' rngTarget is a Range, can be eg ActiveCell or ActiveSheet.Cells(1, 2) or ActiveSheet.Range("B8")