vba - 无法关闭打开的 excel 工作簿

标签 vba excel

我正在构建一个包含命令按钮、用户表单等的 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/

相关文章:

sql - 如何解决 Excel 因某些 SELECT 语句而崩溃的问题?

excel - 根据日期和时间导入电子邮件数据

c# - 忽略 OWC11 日期格式

excel - 连接唯一值而不计算空白单元格

excel - Spreadsheet_Excel_Writer Excel 2007 格式

excel - 使用 XMLHTTP 方法时获取表头

vba - 我的用户窗体上的滚动条无法滚动

excel - selection.copy 导致 selection.pastespecial 不起作用。 excel VBA

java - 空指针异常将Jtable写入Excel

python - 从 VBA 调用 Python (Winwrap)