繁体   English   中英

Office 365 for Mac:在表更改时执行 VBA 宏

[英]Office 365 for Mac: Execute VBA macro on table change

我目前正在使用 Office 365 订阅运行 Excel for Mac。 每当某个单元格值发生变化时,我都会尝试执行 VBA 宏。 我已经在网上查看并看到了许多使用Worksheet_Change Sub 的代码示例,但是它对我不起作用。 这是我的代码目前的样子:

Private Sub Worksheet_Change(ByVal Target as Range) 
    Target.Font.ColorIndex = 5 
End Sub

我正在尝试在四张纸中的第二张上运行它。 我在第二张纸上单击了View Code ,所以我在正确的工作表中。

有人知道为什么它有效/可能无效吗? 它在 Excel for Mac 中不起作用吗?

如果您需要更多信息,请告诉我。

谢谢

我之前也遇到过类似的问题,因为你的症状听起来像我的(代码甚至没有执行),我怀疑你的代码实际上不在正确的工作表上。 Mac 中的 VBA 窗口比 Windows 中的详细得多,我觉得它很混乱。

确保在左侧窗格中单击适当的下拉菜单

VBAProject(WorkbookName) -> Microsoft Excel Objects -> Sheet2

并在那里插入 Worksheet_Change 函数。

此外,如果您希望颜色仅在特定范围内更改,则需要使用 Intersect:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

    ' The variable KeyCells contains the cells that will cause an alert when they are changed.
    Set KeyCells = Range("A1:Z99")

    'This part executes only if the cell being changed is in KeyCells
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then

        Target.Font.ColorIndex = 5 

    End If

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM