笔者使用Excel中带的VBA作为工具,编写如下程序:
| Private Sub CommandButton1_Click() Dim n As Long Dim s1,s2,s3 as string Dim MyTime MyTime = Time Randomize For n = 1 To 1000000 s1 = "A" & Trim(Str$(n)) s2 = "B" & Trim(Str$(n)) s3 = "C" & Trim(Str$(n)) Worksheets("Sheet1").Range(s1).Value = n Worksheets("Sheet1").Range(s2).Value = 10000 * Rnd(1) Worksheets("Sheet1").Range(s3).Value = 10000 * Rnd(1) Next MyTime = Time MsgBox Format$(MyTime) End Sub |
对于Excel 2003 和 Excel 2007,当n=65537时出错。因为这两个版本的Excel工作表的最大行数是65536,即216。
而对于Excel 2010 则可以顺利通过。即其Excel工作表的最大行数至少可以达到100万行。(其上限是多少本人没有测试)
因此,从工作表所能处理行数角度考虑,Excel 2010要比其以前版本强很多。
如果以上程序中的随机数不取整,而以浮点数形式操作,则速度要比整数操作慢很多。(使用MsgBox Format$(MyTime)可以计算操作时间。)
通过运行上述程序而生成的Excel文件的长度是46.4MB。
