为什么会出现其他Excel窗口

时间:2018-10-30 03:44:39

标签: excel vba

场景

我正在使用一个宏,其中我使用Application.Visible = False来隐藏工作簿。另外,我使用Application.Visible = True取消隐藏工作簿。在某些情况下,我使用Windows(ThisWorkbook.Name).Visible = FalseWindows(ThisWorkbook.Name).Visible = True来仅隐藏和取消隐藏包含宏的工作簿。

问题

在这些操作中,我注意到,除了工作簿以外,还出现了一些其他excel窗口(没有任何工作簿)。请看下面的图片。您可以在后面看到一个灰色的窗口,其名称为Excel。那是我正在谈论的窗户

enter image description here

如果我关闭该窗口,则整个excel都将关闭。有谁知道为什么会出现这个额外的窗口以及如何阻止它出现?

3 个答案:

答案 0 :(得分:1)

我不确定这是否可以满足您的特定情况的需求。但是,如果您在代码的开头保留Application.Visible = False并将Application.Visible = True更改为 Application.Windows(ThisWorkbook.Name).Visible = True结尾。这对我有用。

答案 1 :(得分:0)

隐藏Excel

使用以下代码

Sub AppVisibleTrue
  Application.Visible = True
End Sub
Sub AppVisibleFalse
  Application.Visible = False
End Sub

您正在显示或“隐藏”“整个” excel应用程序,因此您必须在同一代码中“取消隐藏”它,否则在将其隐藏后将无法使用打开的文件,例如打开一个新的工作簿,在VBE中添加一个新模块并将上面的代码粘贴到该模块中。现在,保持在VBE中!!!运行“ 错误”子目录。您会注意到Excel已“消失”,但是您仍然可以在任务管理器的流程中找到它。现在运行“ ”子目录。 Excel已“重新出现”。

以下过程将使Excel消失。关闭它的唯一方法是通过任务管理器。如果您不太熟悉此操作,请相信我。 关闭VBE。现在运行“假”子。 Excel已“消失”。

总而言之,这显然是代码中的错误,因此我建议您是否要显示一个不是'ThisWorkbook'的窗口(工作表),而您正在从一个窗口跳到另一个窗口,则应声明变量

Const strSheet as String = "Sheet2"
Dim oSheet as Worksheet
'...
Set oSheet = ActiveWorkbook.Worksheets(strSheet)

现在您可以随心所欲地使用oSheet

尝试丢失代码中的有效选择和类似方法。

如果您向实际情况提供代码,则可以对问题进行更好的评估。

答案 2 :(得分:0)

其他Excel窗口可能与Windows资源管理器相关。如果要预览文档(在本例中为Excel文档),则用于查看该文档的应用程序将在后台运行。

在这种情况下,强制显示应用程序也会使背景“预览”窗口可见。