1

当用户双击数据透视表中的单元格时,Excel 会生成一个带有详细信息的新工作表。那是完美的。我正在寻找在这个新工作表中注册 VBA 事件的可能性。Worksheet_SelectionChange我想为这个新工作表的事件注册一个函数。我怎样才能做到这一点?

4

1 回答 1

0

这有点复杂,但以你的声誉,我相信你不会害怕并发症:)

首先在您的 Excel 文件中,确保您在参考中使用以下方法引用 VBIDE:

1. 您需要 VBIDE 参考才能使其工作:

1.a. 您可以在即时窗口中运行以下代码以附加参考:

ThisWorkbook.VBProject.References.AddFromGuid _
        GUID:="{0002E157-0000-0000-C000-000000000046}", _
        Major:=5, Minor:=3

1.b。或者您可以从您的工具\参考中手动附加“Microsoft Visual Basic for Applications Extensibility 5.3”

2. 附加参考后,您可以将以下功能添加到您的工作簿中:

Const DBLQuote = """"

Private Sub Workbook_NewSheet(ByVal Sh As Object)
Dim Line As String

        With ThisWorkbook.VBProject.VBComponents(Sh.Name).CodeModule
            Line = .CreateEventProc("SelectionChange", "Worksheet") + 1
            .InsertLines Line, _
            "Msgbox " & DBLQuote & "Selection Changed !" & DBLQuote & ",vbOkOnly"

            '----> You can put your code here or call your function 
        End With
End Sub

为了得到这个,我不得不深入挖掘,但感谢上帝它有效。有关更多信息,您可以访问此处:

http://www.cpearson.com/Excel/vbe.aspx用于 VBE

我希望这能帮到您!

于 2020-04-06T15:34:40.053 回答