vba如何关闭一个指定excel文件

例如我目前打开2个excel a 和 b
怎么样关闭a 但 b 不受影响?

如果a是b通过vba调用excel application打开的, 那代码关闭它很容易
如果不是, 那需要调用windows API遍历目前所有进程, 然后判断哪个excel进程是需要关闭的, 关闭即可追问

是后者 a 和 b 是完全无关的2个excel,求可执行的代码,vba的代码知识,我是完全不懂啊。可用绝对追加。

追答

是重复操作吗? 有多少个文件需要关闭? 超过一定数量写代码有意义, 如果是一个两个手动关关即可

追问

不确定几个,也可能没有,只是为了以防万一,所以不能用dos的kill,但是我是放在 服务器 自动任务 里面执行的。所以还是需要代码。

追答

vba是依附与excel运行的, 如果要设为自动任务, 你这个需求用VB或者C语言编译成exe或dll更合理一些

追问

看来是解决不了了- -唉

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-18
Workbooks("a.xlsx").Close (True)追问

保存为什么后缀的文件?

追答

excel文件后缀有.xls和.xlsx两种
Workbooks("a.xlsx")是指向a.xlsx文件
保存当然要带后缀,不然它不知道你保存的是什么类型文件
.close(true)意思是保存并关闭a.xlsx
.close(false)意思是关闭不保存a.xlsx

追问

那句话是说 保存为,什么格式的文件。就是说 如何才能执行这行代码,例如保存为bat文件双击运行,或者保存为其他格式,只要能双击执行即可。

追答

看了上面那位兄弟的回答,如果是定时运行,VBA实现不了,需要用vb.net或c#.net来调用excel ,然后生成.exe文件 定时调用

追问

唉,还是谢谢了。

第2个回答  2013-10-18
可以直接关掉a吧,这样b会有影响?追问

要是能直接关,我何苦问问题。。点下X不知道么- -

追答

我的好像不存在这问题呢

相似回答