以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]遍历sheet表名时特别慢 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=189355) |
-- 作者:moseser -- 发布时间:2023/11/27 14:43:00 -- [求助]遍历sheet表名时特别慢 Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter = "Excel文件|*.xls|Word文件|*.doc|Access文件|*.mdb" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Vars("Path_in") = dlg.FileName Dim App As New MSExcel.Application Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName) Dim filter As String For Each ws As MSExcel.WorkSheet In Wb.WorkSheets filter = filter & "|" & ws.Name Next filter = filter.TrimStart("|") e.Form.Controls("ComboBox1").ComboList = filter End If 我做了一个按钮,按钮的命令如上,当选择表是,下拉框的列表就显示表名,可是非常慢,不如咱们软件的高速合并快,请问什么原因?
|
-- 作者:有点蓝 -- 发布时间:2023/11/27 14:56:00 -- vba一向就慢,处理后一定要关闭文档: …… e.Form.Controls("ComboBox1").ComboList = filter App.quit End If 如果只是获取sheet名称,不涉及复杂的内容控制,建议使用XLS.Book:http://www.foxtable.com/webhelp/topics/1152.htm
|
-- 作者:moseser -- 发布时间:2023/11/27 17:33:00 -- 回复:(有点蓝)vba一向就慢,处理后一定要关闭文档:... 为啥咱们软件自带的很快 |
-- 作者:有点蓝 -- 发布时间:2023/11/27 17:42:00 -- 那个不需要调用office的组件,没用到vba |
-- 作者:puma -- 发布时间:2023/11/27 18:19:00 -- 如果需要:我可以向你提供获取excel表名的函数,需要引入NPOI |
-- 作者:y2287958 -- 发布时间:2023/11/28 7:55:00 -- 建议数据源会快很多 |
-- 作者:moseser -- 发布时间:2023/11/28 8:21:00 -- 回复:(有点蓝)那个不需要调用office的组件,没用到... 咱们软件是如何做到的呢? |
-- 作者:有点蓝 -- 发布时间:2023/11/28 8:42:00 -- 那是C1自带的功能,底层怎么处理的我们也不清楚 |
-- 作者:chen37280600 -- 发布时间:2023/11/28 9:43:00 -- 想问下,C1有没官方手册链接?可以看看C1里Excel处理共有哪些方法属性 |
-- 作者:有点蓝 -- 发布时间:2023/11/28 9:47:00 -- https://www.grapecity.com/componentone/docs |