标题:把VBA代码移植到VB6.0中,运行很慢是什么原因?有没有什么好的解决方案?
取消只看楼主
duzihanghai
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2021-9-16
结帖率:50%
 问题点数:0 回复次数:1 
把VBA代码移植到VB6.0中,运行很慢是什么原因?有没有什么好的解决方案?
自己用VBA做了一个产品选型程序,在VBA中运行很快,但数据保存在十几张工作表中,数据安全不好保证。现在想移植到VB中去,需要用VB调用excel查询数据,但刚刚做了一个简单测试,运行速度特别慢,请问哪位老师知道这个是什么原因?有没有什么更好的解决方案?
[code]Private Sub Command1_Click()
Application.ScreenUpdating = False '关闭屏幕刷新
Dim rng As Range
Dim xlApp As Excel.Application '声明对象变量
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim i
Dim Temp() As Byte

Temp = LoadResData(101, "CUSTOM")
Open "C:\Program Files (x86)\sldata.xlsx" For Binary Access Write As #1
Put #1, , Temp()
Close #1
Set xlApp = Excel.Application '实例化对象
Set xlBook = xlApp.Workbooks.Open("C:\Program Files (x86)\sldata.xlsx")
Set xlSheet = xlBook.Worksheets("WO")
xlApp.Visible = False '使Excel隐藏不可见
i = xlSheet.Range("A2:A1236").Find(Text1.Text).Row
Label1.Caption = xlSheet.Cells(i, 2)


xlApp.DisplayAlerts = False '不提示是否覆盖
xlBook.Close (False) '关闭工作簿
xlApp.Visible = False
xlApp.Quit '结束EXCEL对象

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing '释放xlApp对象
End Sub
简单测试.rar (504.24 KB)
搜索更多相关主题的帖子: Dim Set Excel 运行 False 
2021-09-29 17:19
duzihanghai
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2021-9-16
得分:0 
回复 2楼 约定的童话
刚才试了一下,注释掉释放文件的这部分语句,直接查找的话初次运行依然很慢,我自己推断是打开excel进程时耗费比较多的时间,因为一旦程序启动运行完第一次后,后续再进行筛选速度明显加快。感谢您的帮助!
2021-09-29 22:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507028-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.324387 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved