返回文件是否存在 VBA Mac Office 2011
我正在尝试测试 Mac Office 2011 上的 VBA 是否存在文件。
我的宏适用于 Office 2004,但不适用于 2011。
我正在使用 Dir 函数。如果该函数没有返回任何内容,则意味着该文件不存在。但在 Office 2011 中,当文件不存在时,该函数会返回错误代码 76。
I'm trying to test if a file exists with VBA on Mac Office 2011.
My macro is working with Office 2004 but doesn't work with 2011.
I'm using the Dir function. If the function returns nothing, this means the file doesn't exist. But with Office 2011, the function returns an error code 76 when the file doesn't exist.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以创建自己的函数来处理错误。例如,这样的事情:
You can just create your own function that handles the error. For instance, something like this:
答案 1 中的解决方案应该有效。但每当您遇到困扰 Mac Excel 2011 的截断文件名问题时,即使应用了 SP1,也会失败。
Microsoft 上描述了基本问题
http://answers.microsoft.com/en-us/mac/forum/macoffice2011-macexcel/help-xl-2011s-dir-function -truncates-filename/e72fbf5d-749c-4a55-a77c-e2def6db24d9?msgId=644b9f20-251b-46fe-8df3-f5a28a1c37f6
和 FileSystem 对象与使用 VBA 原生 Dir 函数具有相同的疾病。
换句话说,它返回与 Dir 返回的相同的截断文件名,因此您实际上无法使用 Excel 2011 后面的 VBA 确定是否存在具有长名称的文件(该名称实际出现在 Finder 列表中的用户) SP1,无需借助 AppleScripting!
The solution in answer 1 should work. But will fail any time you encounter the truncated file name issue that plauges Mac Excel 2011 - even with SP1 applied.
The basic problem is described on Microsoft
http://answers.microsoft.com/en-us/mac/forum/macoffice2011-macexcel/help-xl-2011s-dir-function-truncates-filename/e72fbf5d-749c-4a55-a77c-e2def6db24d9?msgId=644b9f20-251b-46fe-8df3-f5a28a1c37f6
and the FileSystem object has the same disease as using the VBA native Dir function.
In other words it returns the same truncated file name that Dir returns, consequently you can't actually determine if a file with a long name, the name that actually appears to the user in a listing in the Finder, exists using VBA behind Excel 2011 SP1, without resorting to AppleScripting!
更好的答案在 msft 网站上: http:// /msdn.microsoft.com/en-us/library/office/jj614412(v=office.14).aspx
例如:
Better answer is on msft website: http://msdn.microsoft.com/en-us/library/office/jj614412(v=office.14).aspx
For example: