我正在构建一个包含命令按钮、用户表单等的 excel 文件,其中包含指向其他工作簿的链接。
对于我工作表上的命令按钮,我使用与我的用户表单中的命令按钮相同的代码:
workbooks.open "path"
使用用户窗体命令按钮添加以下内容
unload me
当我通过用户窗体打开工作簿时,之后无法将其关闭。我必须先激活我的工作簿,然后激活打开的工作簿,然后才能关闭它
我试过在“workbooks.open”之前和之后放置“unload me”,但这并没有改变任何东西。
我也试过以下方法,也没用:
unload me
dim wb as workbook
set wb = workbooks.open"pathname"
wb.activate
有人有什么想法吗?
现在的例子: 有人需要进行价格计算。他们在我的文件中打开价格用户表单。他们单击“计算文件”按钮。计算文件打开。他们在那里进行计算,现在他们在计算文件中完成了。所以他们想通过点击十字架来关闭它。但是他们不能点击十字架。然后他们切换到任务栏上的我的文件,然后切换回计算文件。现在他们可以点击十字了
我不明白为什么他们第一次不能点击它,但是在我的和开放式工作簿之间切换后他们可以点击它。
最佳答案
我怀疑这是由于不正确的表单处理和“默认实例”在您卸载它后重新创建它自己造成的。如果您在显示之前不创建自己的窗体实例,那么当您在卸载窗体后使用它时,VBA 将执行各种奇怪的操作。
如果您需要做的只是打开工作簿并卸载表单,*在卸载表单之前不要增加工作簿的引用计数。此外,在从表单调用 Unload Me
后,不要尝试运行任何其他代码。您发布的代码应该只是:
Workbooks.Open "pathname"
Unload Me
当然,表单的调用代码不在问题中,但也可以在那里解决。
关于vba - 无法关闭打开的 excel 工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41244457/