为什么VB调用EXECL速度很慢
Dim objExl As Excel.Application '声明对象变量
Dim i As Long
Dim j As Long
Dim x As Long
Set objExl = New Excel.Application '初始化对象变量
objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1
objExl.Workbooks.Add '增加一个工作薄
objExl.Sheets(objExl.Sheets.Count).Name = "book1" '修改工作薄名称
objExl.Sheets("book1").Select
i = 1: j = 1
For x = 1 To 1000
objExl.Cells(i, j).Value = x
j = j + 1
If j = 20 Then j = 1: i = i + 1
Next
objExl.Application.IgnoreRemoteRequests = False
objExl.Visible = True '使EXCEL可见
objExl.Application.WindowState = xlMaximized 'EXCEL的显示方式为最大化
objExl.ActiveWindow.WindowState = xlMaximized '工作薄显示方式为最大化
Set objExl = Nothing '清除对象
在C2.2/512M的机子上打开一次需要10秒钟时间…
问题点数:20、回复次数:4Top
1 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-02 16:56:56 得分 0
两个地方花时间比较长,1是打开Excel对象,2是循环占用时间Top
2 楼slmn(自游自在的鱼)回复于 2006-03-02 17:12:52 得分 0
有没有打开EXECL快点的方法,我从数据查询数据只要两秒,打印竟然要花30-60秒的时间
如果用VB自带的报表只要2、3秒就可以了Top
3 楼slmn(自游自在的鱼)回复于 2006-03-02 18:34:35 得分 0
uTop
4 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-02 18:58:36 得分 20
基本上没有办法,时间主要花在循环填充上了,打开Excel,慢的话,最多不超过10秒
如果你的循环填充能够去掉,改为当作数据库操作的话,能快一些Top




