excel vba,读取指定路径上的excel 文件数据,后台读取,不要打开它

我已经做了一个excel表格,我现在用的是最笨的方法,就是用了辅助的表格,把路径上的数据表一个个打开,贴到辅助表中,再关闭。处理得很慢。我想能不能不用辅助数据表,直接后台... 我已经做了一个excel表格,我现在用的是最笨的方法,就是用了辅助的表格,把路径上的数据表一个个打开,贴到辅助表中,再关闭。处理得很慢。
我想能不能不用辅助数据表,直接后台对路径上的excel文件读取数据呢?各位大侠帮帮忙吧。
还有个小问题,下面的Observation1!,就是我建的辅助表,我现在要在指定单元格里面输出对辅助表中数据计算的值,如果没有辅助表,直接从路径上读取数据,这个countifs该怎么写呢。
=COUNTIFS(Observation1!B:B,"*s*",Observation1!AG:AG,start!B1)
说简单点,请看代码
Dim a As String
a = Application.WorksheetFunction.CountIfs(Worksheets("Observation1").Range("AG:AG"), Worksheets("start").Range("B1"))
Sheet4.Cells(2, 6).Value = a

现在这个observation1这个sheet是我建的辅助表,从D:\ 打开,然后粘贴过来的。现在我想不打开,直接引用数据的话,这段程序该怎么改呢。
不要打开引用数据的文件,不然速度实在太慢了。
展开
 我来答
Ronnie0812
2012-04-20 · TA获得超过2070个赞
知道小有建树答主
回答量:634
采纳率:66%
帮助的人:352万
展开全部
只能给你个几个参考,当然还有其他方法,希望能够帮到你 望采纳
getobject函数 本质是打开的,只是看不到窗口
Dim wb as workbook
set wb = getobject(具体路径+文件)
with wb
.............(operation on wb)
end with
wb.close false
set wb=nothing
追问
有没有不打开的方法啊,由于数据表很大,打开的话运行速度太慢了,谢谢你了!补充问题,请看代码
Dim a As String
a = Application.WorksheetFunction.CountIfs(Worksheets("Observation1").Range("AG:AG"), Worksheets("start").Range("B1"))
Sheet4.Cells(2, 6).Value = a
现在这个observation1这个sheet是我建的辅助表,从D:\ 打开,然后粘贴过来的。现在我想不打开,直接引用数据的话,这段程序该怎么改呢
追答
不要纠结于打不打开表了,程序内部肯定是需要进行访问目标表的
理论上,程序还是需要载入目标表内容的,不然怎么进行处理呢
你不知道excel的源代码,是不可能做到直接去解析他的数据存储
更何况你是用excel的vba来处理excel自己的数据,他当然用他自己的方式访问目标表
在屏幕上显示或不显示打开的表只是一种形式过程
无论所谓的打开和不打开表,本质上计算机都要进行载入操作的文件。
可能你会觉得某些隐藏表,或者屏幕不显示表的方式会快一点,那是因为Screenupdate的速度肯定要比你机器内部处理速度要慢,隐藏或屏蔽了显示的处理过程,会是速度相对提高点
zhaochang168
2012-04-24
知道答主
回答量:28
采纳率:0%
帮助的人:13.7万
展开全部
楼上说的是对的,不可能不打开,要读取excel数据,必须要打开excel进程,并读入文件数据
只不过可以让进程在后台运行,看不到罢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ltwan1987
2012-04-26
知道答主
回答量:16
采纳率:0%
帮助的人:7.7万
展开全部
把邮箱发来,具体答案我发给你
追问
1012513518@qq.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ryuginka
2012-04-20 · TA获得超过956个赞
知道小有建树答主
回答量:2839
采纳率:0%
帮助的人:749万
展开全部
没看明白。在说详细点,
追问
说简单点,请看代码
Dim a As String
a = Application.WorksheetFunction.CountIfs(Worksheets("Observation1").Range("AG:AG"), Worksheets("start").Range("B1"))
Sheet4.Cells(2, 6).Value = a

现在这个observation1这个sheet是我建的辅助表,从D:\ 打开,然后粘贴过来的。现在我想不打开,直接引用数据的话,这段程序该怎么改呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
燕翩然
2012-04-25
知道答主
回答量:11
采纳率:0%
帮助的人:8734
展开全部
可以把辅助表,做成模板,然后在宏中加入到当前文件中,用后再删除,应该能快点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式