工作表事件未触发

时间:2019-05-08 14:42:32

标签: excel vba

我的基本工作表事件代码不起作用。

我的Sheet4工作簿(我希望在其中运行)中包含以下代码:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 14 Then
    ThisRow = Target.Row
    If Target.Value = "In Progress" Then
        Range("S" & ThisRow).Value = Format(Now(), "mm/dd/yyyy")
    End If
End If 
End Sub

Private Sub Worksheet_Change2(ByVal Target As Range)
    Target.Font.ColorIndex = 5
End Sub

-这是在我的“ Sheet 4”项目中(即,当我单击鼠标右键单击选项卡并单击“查看代码”时,它会直接拉到vba中,我在那里看到我的代码)

-我已经检查了我的信任中心,并且启用了所有宏。该工作表已保存在我的桌面上,因此应该位于受信任的位置。

我不知道为什么以上两个代码块都不起作用。单击可执行宏后,该方法就会起作用(即,当我告诉该宏运行时执行此操作)。

最后,此excel保存为启用宏的工作簿。

2 个答案:

答案 0 :(得分:0)

尝试一下:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

    Dim ThisRow As Long

    If Target.Column = 14 And Target.Value = "In Progress" Then
        ThisRow = Target.Row
        Range("S" & ThisRow).Value = Format(Now(), "mm/dd/yyyy")
        Target.Font.ColorIndex = 5
    End If

End Sub

这对我来说很好。习惯使用Option Explicit进行开发,因为它会迫使您声明所有变量,而这是避免出错的方法。

答案 1 :(得分:0)

非常感谢您的快速解答!!我设法使其正常工作,但我不确定百分百地说:)

我认为这只是擅长表现奇怪。当时,我是在翻转标题,以防万一“ worksheet_change”是一个特定的excel名称(而不仅仅是一个普通用户生成的名称)并且仍然无法正常工作。最终,日期开始弹出,但突出显示仍然不起作用。

我在那儿有亮点,因为那是一次测试。该代码直接从MS站点提取,因此我将其用作对照组。我们可以继续关闭它。谢谢大家的帮助!