Office中国论坛/Access中国论坛

标题: for each 获取工作表名称觉得还是挺慢的 [打印本页]

作者: littlekey    时间: 2013-8-5 21:55
标题: for each 获取工作表名称觉得还是挺慢的
    With Me
        .List0.RowSource = ""
        Set ex = CreateObject("Excel.Application")
        Set exwbook = ex.Workbooks.Open(.Text2.Value)
        For Each exsheet In exwbook.Worksheets
            .List0.AddItem exsheet.Name
        Next
        Set ex = Nothing
    End With

text2放的是工作簿的路径
但是我发现这种方法获取工作表名称
放到列表框中
效率还是很低,不知道有没有其他方法

作者: admin    时间: 2013-8-5 22:02
主要慢的原因是 因为要打开 excel对象, 其它代码不慢,或者说第二次再操作不慢
作者: littlekey    时间: 2013-8-5 22:11
admin 发表于 2013-8-5 22:02
主要慢的原因是 因为要打开 excel对象, 其它代码不慢,或者说第二次再操作不慢

而且内存会驻留Excel ,很是讨厌
作者: admin    时间: 2013-8-5 22:37
驻留 ,只需要 exwbook 要显式关闭
且 set exwbook=nothing
作者: littlekey    时间: 2013-8-6 08:46
admin 发表于 2013-8-5 22:37
驻留 ,只需要 exwbook 要显式关闭
且 set exwbook=nothing

我写错了,我是用set ex=nothing
作者: t小宝    时间: 2013-8-6 15:32
供参考:
http://www.office-cn.net/thread-117334-1-1.html
作者: littlekey    时间: 2013-8-6 19:04
t小宝 发表于 2013-8-6 15:32
供参考:
http://www.office-cn.net/thread-117334-1-1.html

这个代码果然很快,而且有一点就是,不在内存驻留Excel 主程序,谢谢小宝




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3