【问题标题】:How to apply an Excel event handler to all sheets?如何将 Excel 事件处理程序应用于所有工作表?
【发布时间】:2020-05-24 16:09:29
【问题描述】:

我创建了 VBA 来操作当前工作表中的单元格(由 SelectionChange 事件处理程序触发)。

如何在我的工作簿的任何工作表中触发此触发器? (该操作应该只对当前处于活动状态的工作表做出反应和修改。)

这是一个例子:它获取当前单元格的值,并将其复制到“A1”:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells(1, 1).Value = Cells(Target.Row, Target.Column).Value
End Sub

(真正的代码要复杂得多——而且在制品是固定不变的——所以我真的不想把它复制到每张纸上。)

【问题讨论】:

  • 你试过Workbook_SheetSelectionChange .. 所以会像Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Cells(1, TargetColumn + 1).Value = Cells(Target.Row, Target.Column).Value End Sub
  • 复制到“A1” ??不.. 那为什么 .Cells(1, TargetColumn + 1).Value 而不是 Cells(1,1) ?此外,您可以引用 Target 而不是 Cells(Target.Row, Target.Column).Value
  • 这是 VBA 而不是 VBScript。

标签: excel vba


【解决方案1】:

使用 Workbook_SheetSelectionChange 代替 Worksheet_SelectionChange 似乎可行。

但应注意,该脚本随后必须放入 ThisWorkbook 代码窗口(而不是 Sheet1 的那个)。

【讨论】:

    猜你喜欢
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 2021-10-29
    相关资源
    最近更新 更多