Vba 工作簿。激活不在某些计算机上工作
今天我遇到了一个奇怪的Excel 2013 VBA行为,我觉得发布这个问题的解决方案可能会在将来帮助其他人。 以下命令在我的计算机和大多数其他计算机上运行良好,但一个用户会收到错误消息。我正在使用Windows7Vba 工作簿。激活不在某些计算机上工作,vba,excel,Vba,Excel,今天我遇到了一个奇怪的Excel 2013 VBA行为,我觉得发布这个问题的解决方案可能会在将来帮助其他人。 以下命令在我的计算机和大多数其他计算机上运行良好,但一个用户会收到错误消息。我正在使用Windows7 工作簿(“Book1”)。激活 我发现另一个用户显示了“已知文件类型的扩展名”。默认情况下,Windows希望隐藏这些。为了让代码在所有机器上正常工作,我必须在代码中包含文件扩展名,如下所示。创建新工作簿但尚未保存时,此命令中不需要包含文件扩展名,因为尚未确定文件扩展名。 只是猜测
工作簿(“Book1”)。激活
我发现另一个用户显示了“已知文件类型的扩展名”。默认情况下,Windows希望隐藏这些。为了让代码在所有机器上正常工作,我必须在代码中包含文件扩展名,如下所示。创建新工作簿但尚未保存时,此命令中不需要包含文件扩展名,因为尚未确定文件扩展名。
只是猜测,但这可能与Windows资源管理器的“文件夹选项”中的设置有关
在“视图”选项卡上有一个选项“隐藏已知文件类型的扩展名”-这将影响在VBA中按名称引用工作簿的方式
编辑:看来你已经做到了 我已经启用了文件扩展名,但它不起作用。我通过强制激活文件和工作表进行了修复
示例(文件仍处于打开状态时):
我知道Activate
和Select
是不够的,但是如果它有效的话..在你的代码中使用两个dim作为工作簿,比如
将当前WB、新WB设置为工作簿
set currentwb = ActiveWorkbook
创建新工作簿集后
set newwb = ActiveWorkbook
什么错误消息?第一册有空吗?发布更多代码。Book1
是保存的工作簿吗?好问题-谢谢。我应该说得更具体些。代码位于以前保存的Book1中。它创建了第二本名为未知的书。所以第二本书在创作时就被激活了。然后切换回原来的Book1是工作簿的位置。激活命令无法正常工作。谢谢Tim。当我第一次遇到这个问题时,我应该把它贴出来。我带我远程查看他的屏幕(不同的站点),开始寻找答案。你没有任何帮助就把它钉死了!在深入研究之前,我在这个网站上寻找了一个类似的问题和解决方案,这就是为什么我决定为其他人发布这个问题和答案。
set currentwb = ActiveWorkbook
set newwb = ActiveWorkbook