不可能不打开文件而取得数据,只要访问文件,就得打开文件,即使是不显示出来的。不管用什么样的方式都是一样的,除非直接访问磁盘。
下面的方法可以不显示打开文件的过程,只是在内存中进行访问,速度比直接打开应该快一些。
application.Workbooks.Open 文件路径
application.Workbooks(文件名).Close true或false表示是否保存
复制就是application.Workbooks("文件名").sheets("表名").range(源单元格地址).copy ActiveSheet.range(目标单元格地址)
你可以用Set xlApp = CreateObject("Excel.Application")来建立一个看不到的Excel应用程序对象,然后用xlApp 来替代上面的Application,就会看不到打开的过程了。
VBA脱离Excel就无法运行。不知道你是在什么情况下取单元格数据?
如果是在jsp里取,可以使用jxl或poi,不会启动excel就能取单元格数据