如何在excel中使用ctrl-click检测用户是否创建工作表?

时间:2017-11-13 22:23:23

标签: excel-vba vba excel

Excel VBA中是否有任何方法可以通过按住Ctrl并单击选项卡然后拖动来检测用户何时创建工作表?

newsheet事件在发生这种情况时似乎没有被触发,因此想知道是否有其他方法可以检测到这一点......

1 个答案:

答案 0 :(得分:0)

我知道如何解决问题的唯一方法是跟踪工作表计数。

您可以通过向模块添加公共变量来实现此目的,例如

Public SheetCount As Integer

然后将以下事件处理程序添加到ThisWorkbook

Option Explicit

Private Sub Workbook_Open()
    SheetCount = ThisWorkbook.Sheets.Count
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    Dim newCount As Integer
    newCount = ThisWorkbook.Sheets.Count

    If newCount > SheetCount Then
        SheetCount = newCount
        MsgBox "sheet added"
    End If

End Sub

Private Sub Workbook_SheetBeforeDelete(ByVal Sh As Object)
    SheetCount = SheetCount - 1
End Sub

MsgBox当然只是出于测试目的。