如何设置 Excel 电子表格的格式以使其保留前导零?

来源:百度文库 编辑:神马文学网 时间:2024/05/01 03:38:15
问:
您好,脚本专家!如何设置 Excel 电子表格的格式以使其保留前导零?
-- AS
答:
您好,AS。您知道,有个脚本专家仍然在做有关数字零的恶梦。几年前,他突然接到一个朋友打来的电话,问他是否愿意帮着训练一支少年篮球队(10 到 11 岁)。因为向来就不三思而行,所以这个脚本专家就说,“当然愿意”。
结果,球队在最后关头才成立,而且成员都是联盟中其他教练不想要的选手。(他们全都 10 岁,而联盟中大多数队员都是 11 岁。)继开场赛 14-12 失利之后 - 带着一点天真的乐观 - 球队在后三场比赛中一分未得。
对,您没听错:一分未得。在篮球赛中一分未得,在同样的比赛中张伯伦曾经一个人就拿到 100 分。一分都没得、光板、鸭蛋。换句话说,全是零。
顺便说一下,如果您想杀杀自己的威风,我们建议您当一名连续三场比赛一分不得的篮球队的教练。这样马上您就会锐气大减。
幸好,AS,Excel 中的前导零不太可能伤害您的自尊。我们假定您想要将一些数字(例如 1 到 10)添加到一个电子表格中,然后,像下面这样设置这些数字的格式:
001002003004005006007008009010
您能做到吗?嗯,就像我们所说的,就提供零而言,至少有一位脚本专家堪称世界级专家:
Set objExcel = CreateObject("Excel.Application")objExcel.Visible = TrueSet objWorkbook = objExcel.Workbooks.Add()Set objWorksheet = objWorkbook.Worksheets(1)For i = 1 to 10objExcel.Cells(i, 1).Value = iNextSet objRange = objWorksheet.UsedRangeobjRange.NumberFormat = "000"
对于 Excel 好像情况总是如此,这确实是一个非常简单的小脚本。例如,此代码的前四行是样板化的:它们的功能就是创建一个可见的 Excel 实例,然后为我们提供一个空白工作簿和空白工作表。然后,我们运行以下代码块来遍历单元格 A1 到 J1,并在每个单元格中放置一个数字(1 到 10,与行号相对应):
For i = 1 to 10objExcel.Cells(i, 1).Value = iNext
换句话说,我们的单元格中的数字将像下面这样:
12345678910
这确实是个不错的点子:我们不想要这样的数字,是吧?这就是此脚本要包括最后这两行代码的原因:
Set objRange = objWorksheet.UsedRangeobjRange.NumberFormat = "000"
所有的乐趣都在这了。在第一行中,我们创建一个 Range 对象,此对象包括电子表格上包含数据的所有单元格(这由 UsedRange 属性为我们提供)。创建此范围之后,我们将 NumberFormat 属性的值设置为 000。这会为我们提供前导零。换句话说:

数字 1 将显示为 001。

数字 37 将显示为 037。

数字 442 将显示为 442
就这么简单。如果我们想要数字显示更多的零,则我们必须做的就是向 NumberFormat 添加一些额外的零。例如,此行代码可让数字最多显示六个零:
objRange.NumberFormat = "000000"
就是这么简单。
顺便说一下,有件事我们得承认。在本专栏的开始部分,我们说青年篮球队在第一场比赛中以 14-12 失利。事实并非完全如此。某个星期五,此脚本专家的朋友接到一个电话,询问他是否愿意做此队的教练;打电话的人说,“嗯,明天就开始训练”。
“太好了”,这个朋友说。“我们的第一场比赛是什么时候”?
“昨晚。不过因为您没有到场,所以只好放弃了”。
换句话说,在有人知道这是一个球队之前,这个球队战绩已经是 0-1 了。这回您就了解了有关此赛季的全部情况了。