| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1658 人关注过本帖
标题:把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
快速回复:把VBA代码移植到VB6.0中,运行很慢是什么原因?有没有什么好的解决方案 ...
数据加载中...
 
   



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

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