首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel VBA ActiveWindow.Visible隐藏错误的工作簿

Excel VBA ActiveWindow.Visible隐藏错误的工作簿
EN

Stack Overflow用户
提问于 2014-02-04 05:36:07
回答 3查看 33.3K关注 0票数 1

我要打开一个工作簿(WB1),当它打开时,另一个工作簿(WB2)也会打开。我要把WB2藏起来。

代码语言:javascript
运行
复制
Private Sub Workbook_Open()

Application.ScreenUpdating = False
Workbooks.Open Filename:="C:\WB2.xlsm"
ActiveWindow.Visible = False

End Sub

这就是我到目前为止所拥有的,它所做的就是隐藏两个工作簿。我希望WB1保持在顶端和可见性。

谢谢!乔希

EN

回答 3

Stack Overflow用户

发布于 2015-07-25 10:23:38

一个重要的部分似乎是如何重新打开视图。其他帖子就是答案..我只需要在提交之前看到它的工作情况。希望这足以解释它,可能是在较少的空间内完成的。谢谢。

我不得不同意发表几个词来描述关键的工作路线。我只是vb的新手&不得不说99%的帖子需要一些研究才能得到所需的变量。我相信这足以添加一些脏话,因为许多人可能会花费几个小时,试图找到该死的答案,但将克制:)。

结果是:地球上的每个人都必须花费2到无限个小时。

(感谢您有代码,要将代码放入框中,需要对行进行一些调整才能包含/空格行干扰?)

我发现:更改输出可能不起作用:.Visible和.Hidden -不知道窗口中的1(1)是用来做什么的。

代码语言:javascript
运行
复制
sub TEST1()    'in a module
'if want to happen when you open a wb, place in: "ThisWorkbook" module as:
'Private Sub Workbook_Open()    


    Dim wb As Workbook
    'Set wb = Workbooks("WB2.xlsm")      'YES
    'Set wb = Workbooks(Filename:="C:\WB2.xlsm")    'untried should work for path eg
    'Set wb = Workbooks.Open(Filename:="C:\WB2.xlsm")   'original, with a command added: open
    Application.ScreenUpdating = False

    If 0 = 0 Then   'set to: if 0 = 1 to skip test
      If wb.WINDOWS(1).Visible = False Then   'TOGGLES: press F5 or run macro button
        wb.WINDOWS(1).Visible = True
        MsgBox "Workbook is NOT Hidden" & Space(10), vbQuestion  'a good test method
      Else
        wb.WINDOWS(1).Visible = False     '<< line to use, to hide wb on open
        MsgBox "Workbook is Hidden" & Space(10), vbQuestion  'a good test method
      End If

    Else
        wb.WINDOWS(1).Visible = False     '<< line to use, to hide wb on open
    end if
End Sub
票数 3
EN

Stack Overflow用户

发布于 2014-02-04 05:40:49

代码语言:javascript
运行
复制
Private Sub Workbook_Open()
    Dim wb as workbook
    Application.ScreenUpdating = False
    set wb=Workbooks.Open(Filename:="C:\WB2.xlsm")
    wb.Windows(1).Visible = False

End Sub
票数 2
EN

Stack Overflow用户

发布于 2019-07-18 10:41:32

这似乎是一个老帖子,但我想我应该加上我的版本的答案,因为我正在做类似的事情。

代码语言:javascript
运行
复制
Set m_WB = Workbooks("WB2FilePath\WB2.xlsm")
Windows(m_WB.Name).Visible = False
'Do work
'Set WorkBook to visible
Windows(m_WB.Name).Visible = True

请记住,最好在完成后将WB2设置为visible。这将避免任何内存在后台被吞噬,而你却不知道!

干杯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21538320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档