我有一个问题,但不知道它是否可以工作。我正在使用Excel 2013,并且我有一些代码来强制宏被打开。它显示一个工作表,使用户打开宏并隐藏其他工作表。重新打开工作簿后,将显示其余工作表并隐藏宏表。我想要做的是显示宏表来告诉用户打开宏。一旦工作簿被重新打开,我想在打开工作簿之前显示一个用户窗体。我强迫用户打开宏的代码如下:强制打开宏,然后显示一次宏的用户表单
Option Explicit
Const origsave As String = "C:\SDK Engineering\iMudCalc Software"
Const origwrkbksave As String = "C:\SDK Engineering\iMudCalc Software\iMudCalc.xlsm"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
'don't display workbook
Application.Visible = False
'Unhide the Starting Sheet
Sheets("Warning").Visible = xlSheetVisible
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Warning" Then
ws.Visible = xlVeryHidden
End If
Next ws
If Len(Dir(origsave)) > 0 Then
MkDir (origsave)
Else
ActiveWorkbook.SaveCopyAs (origwrkbksave)
End If
End Sub
Private Sub WorkBook_Open()
Dim ws As Worksheet
Application.Visible = False
For Each ws In ThisWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
Sheets("Warning").Visible = xlVeryHidden
'this is where I need the workbook to stay invisible and display a userform if macros are enabled...
frmOnLoad.Show
End Sub
任何人都可以帮助解决这个问题吗?希望我解释得很好。
如果宏是从一开始就无效,你怎么能指望你的宏运行的第一次?纠正我,如果我错了,但如果Excel宏安全设置设置为默认情况下不允许宏,我敢肯定,不管他们在第一个Excel实例中(打开/关闭宏),当他们完全退出Excel,然后重新打开它,它将禁用宏。 – BruceWayne
@BruceWayne我认为他的建议是你有一个启用宏的工作簿,并且除了一个表格“你必须启用宏来使用这个工作簿”或其他东西以外,所有表格都是隐藏的。如果它们启用了宏,但在运行时会取消隐藏所有工作表并隐藏“您必须启用宏以使用此工作簿”工作表。如上所述,它可以这样工作。 – user1274820