当用户双击数据透视表中的单元格时,Excel 会生成一个带有详细信息的新工作表。那是完美的。我正在寻找在这个新工作表中注册 VBA 事件的可能性。Worksheet_SelectionChange
我想为这个新工作表的事件注册一个函数。我怎样才能做到这一点?
问问题
25 次
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
为了得到这个,我不得不深入挖掘,但感谢上帝它有效。有关更多信息,您可以访问此处:
我希望这能帮到您!
于 2020-04-06T15:34:40.053 回答