gpt4 book ai didi

excel - 在 Excel VBA 中,如何将工作表事件从加载项运行到事件工作簿

转载 作者:行者123 更新时间:2023-12-04 22:30:05 25 4
gpt4 key购买 nike

我喜欢将代码从 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

    关于excel - 在 Excel VBA 中,如何将工作表事件从加载项运行到事件工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53881479/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com