[英]VBA Add Worksheet from active Workbook to new Excel Application Workbook
[英]In Excel VBA, how to run a worksheet event from add-in to active workbook
我喜欢从Excel加载项运行代码到活动工作簿(xlsx)。 当在菜单中激活代码时,该代码应将某些格式应用于活动工作簿的活动单元格。
我该如何实现?
通常,您可以通过使用活动工作簿中的worksheet_change事件来实现此目的,但这需要:
我喜欢通过独立于工作簿的加载项来应用此方法,因此无需在此工作簿中插入代码,并且无需首先将其制作为xlsm工作簿。
您可以从另一个(类)模块中的一个工作表中捕获WorksheetChange
事件,但是在这种情况下,您可能宁愿使用上面的Application.SheetChange
(插件中ThisWorkbook
模块中的代码):
'Create an object to catch events
Dim WithEvents ExcelApp As Excel.Application
'Assign object when addin opens
Private Sub Workbook_Open()
Set ExcelApp = Application
End Sub
'Handle sheet changes in all workbooks
Private Sub ExcelApp_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim rng As Range
'Do some validation...
If Sh.Parent.Name = "Book1" And Sh.Name = "Sheet1" Then
'Ensure correct range
'Note: changes may occur in many cells at a time (delete, paste, ...)
Set rng = Intersect(Target, Workbooks("Book1").Worksheets("Sheet1").Range("A1:B2"))
If Not rng Is Nothing Then
rng.Interior.ColorIndex = vbRed 'Example
End If
End If
End Sub
谢谢你们,似乎我可以在这里进行测试并尝试新的见解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.