我已在Workbook_BeforeClose
中写了PERSONAL.XLSB
个活动,我希望将其应用于所有/任何已打开的工作簿。
该代码旨在查找工作簿标题中的特定文本字符串,并在找到文本字符串时标记消息框。
Public Sub Workbook_BeforeClose(Cancel As Boolean)
Dim pos As Integer
Dim iRet As Integer
Dim strPrompt As String
Dim strTitle As String
' Test
pos = InStr(ThisWorkbook.Name, "<Insert String here>")
If pos <> 0 Then
' Prompt
strPrompt = "<Message>"
' Dialog's Title
strTitle = "<Title>"
' Display MessageBox
iRet = MsgBox(strPrompt, vbYesNo, strTitle)
' Check pressed button
If iRet = vbNo Then
Cancel = True
Else
End If
End If
End Sub
我很感激,因为这个宏位于我的PERSONAL.XLSB
工作簿中,它只适用于自己。
我正在寻找一种解决方案,其中个人关闭之前的宏可以应用于所有/任何本身不包含宏的打开的工作簿。
答案 0 :(得分:0)
这可以通过捕获Application事件而不是Workbook事件来完成。
Private WithEvents AppEvents As Application
Private Sub Workbook_Open()
Set AppEvents = Application
End Sub
Private Sub AppEvents_WorkbookBeforeCloseEventHandler(ByVal Wb As Workbook)
If Not Wb Is Me Then
Call YourMacro(Wb)
End If
End Sub
只需将您的代码封装在Sub中,并在指示“YourMacro”的地方调用它。
希望这会有所帮助。欢呼声。