上次您帮我解答了“excel中用类似浏览的方式打开多个文件,将文件的路径赋值给变量。这个怎么实现呢?”的问题,我还想请教一下,这个怎么判断是否有文件打开呢?
用f是否为flase 判断是否打开,当没有打开时可以判断,当打开文件了就报类型不匹配;
用UBound(f)是否大于0判断,当打开时可以,当没有文件打开时又报类型不匹配。请问这个怎么判断是否有文件打开呢?
MultiSelect 参数的设置是指F = Application.GetOpenFilename("EXCEL文件,*.*,", 1, MultiSelect:=True)中的 MultiSelect:=True的设置吗?
追答正是...
这个怎么判断是否有文件打开呢?
Application.GetOpenFilename是没有打开文件功能哦,只是返回路径与文件名。你是想判断是否有选择文件对吧?如果没有选择或直接点了“取消”
结果等于FALSE ,如下:
F = Application.GetOpenFilename("EXCEL文件,*.*,", 1, MultiSelect:=True)是这个意思吗!
楼上的代码你也可以参考下。
追问请教一下,我现在在第一个excel里面执行代码,中间需要打开第二个excel,第二个excel里面也有代码,系统会在打开第二个excel后接着执行第二个excel的代码,但是我只是想打开第二个excel读取其中的单元格。请问我怎么就能不执行第二个excel的代码?因为是批量处理,而且第二个excel也不固定,不能把第二个excel的宏禁止。大师指点一下,谢谢~~
追答不得哦。第二个EXCEL就算有代码,你第一个EXCEL代码没有要求去执行它。就不会执行啊。
我感觉这个问题,不存在呀,是否问题,没有描述清楚或我理解错了?
我现在单步调试的时候,按F8,到了打开第二个excel的时候,再继续F8,就在执行第二个文件的代码了。
追答写在workbook.open里的代码??
你把宏级别设置为低看下呢。
因为我这里所指的第二个excel是不固定的,所以不能通过修改它来解决这个问题。我是用workbook.open打开的文件,这个有影响吗?
追答不是啊!
1、你把开的第二个EXCEL文件代码是写在哪里的?模块还是事件中的?如果写在模块里的问题是不存在的。
2、把宏级别设置为低 是争对所有EXCEL文件的。
打开的第二个excel是取用别人的文件,我看有模块、窗体还有类模块,这个能处理吗?
估计是这里面有代码:一打开就执行了。
把宏级别设置为低,如果还是不行,请传文件!
是,我看从第一个excel跳过去直接执行的是第二个文件的Private Sub Workbook_Open()程序。请问这个改怎么处理呢?宏安全性已经是最低了。
追答采纳、分虽然没有给我,我也帮你处理了吧。够意思啥 !
例子:用宏1文件打开B.XLS,B.XLS中OPEN事件。现在禁用它。
方法一:
Sub cc()方法二:这个简单--前后加上两句,试下呢
Application.EnableEvents = False第二个方法是在哪里的前后加?这两句意思相反啊,是指在B文件之前加上第一句,在最后加上第二句吗?
追答加A文件啥 。就是第一个文件。如果加第二个还有什么意义? 还不如直接把代码删了。
请问On Error Resume Next是什么意思?
追答忽略错误。也就是出错不提示。