【问题标题】:Specific workbook invisible Excel VBA特定工作簿不可见 Excel VBA
【发布时间】:2021-04-08 03:25:37
【问题描述】:

我正在 Excel VBA 中编写一个脚本,其中 Workbook 应该以 UserForm 打开。我只希望UserForm 可见,而 excel 窗口本身不可见。因此,我为Workbook的打开编写了以下代码:

Private Sub Workbook_Open()

'Application launch

Application.Visible = False 'Hide Excel window
EnableResize = False
Application.DisplayFullScreen = True 'Preset fullscreeen mode
Application.CommandBars("Full Screen").Enabled = False 'Hide command bars
WelcomeForm.Show 'Show welcome UserForm

End Sub

我意识到我已将整个 Excel 应用程序设置为不可见。从这个意义上说,现在发生的情况是,当我打开其他 Excel 工作簿时,一旦我打开这个工作簿,它们就会变得不可见。我怎样才能使这个设置只适用于这个特定的工作簿?谢谢

【问题讨论】:

  • 我不相信你可以。 Excel 具有独立于您正在查看的工作簿的全局设置。例如,您可以在查看一个工作簿时最小化功能区,然后关闭工作簿并退出,然后在有或没有文件的情况下运行 Excel。您会看到功能区保持最小化。
  • 您也可以使用 VeryHidden,请参阅:stackoverflow.com/questions/853270/…,这会阻止用户轻松访问它。
  • 有时,在 Excel 中创建 VBA 项目的行为类似于 Windows 应用程序所涉及的工作比仅仅花费一些时间编写 Windows 应用程序要多得多。 YMMV。

标签: vba excel userform invisible


【解决方案1】:

部分回答:你也可以设置window属性.Visible

ThisWorkbook.Windows(1).Visible = False

但是这不会隐藏应用程序(如果您只打开一个工作簿,则会有一个空的 Excel 窗口)所以您需要先检查一下

If Application.Workbooks.Count > 1 Then
    ThisWorkbook.Windows(1).Visible = False
Else
    Application.Visible = False
End If

【讨论】:

    【解决方案2】:

    这里有一个选择:

    Sub HideSheet()
    
    Dim sheet As Worksheet
    
        Set sheet = ActiveSheet
    
        ' Hides the sheet but users will be able to unhide it using the Excel UI
        sheet.Visible = xlSheetHidden
    
        ' Hides the sheet so that it can only be made visible using VBA
        sheet.Visible = xlSheetVeryHidden
    
    End Sub
    

    更多详情在this SO question

    【讨论】:

      【解决方案3】:

      你可以做的是以下

      private sub workbook_open ()
      
      userform.activate
      
      end sub
      

      然后在userform代码中写

      Private sub userform_intialize()
      
      application.screenupdate =false
      
      end sub
      

      现在您只能在开始时看到表单

      我不知道如何解决的一个问题是,您在移动窗口时仍会看到旧版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-15
        • 1970-01-01
        相关资源
        最近更新 更多