在用户更改的单元格上运行宏

时间:2014-03-28 16:48:04

标签: excel vba excel-vba

如果某个范围内的任何单元格发生更改(C5到c25),我会尝试自动运行宏。

正如您在下面的代码中看到的,它应该会自动显示一个消息框,询问用户是否继续(如果用户说是,则运行宏)。

一旦我更改了任何一个单元格(从c5到c25),我无法让代码开始运行。

这是代码 - 它不是我自己的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("C5:C25")) Is Nothing Then Reminder
End Sub
Sub Reminder()
'
' Reminder Macro 
'
response = MsgBox("Do you want to set a reminder in Outlook for when the next update is required? If yes, make sure your Microsoft Outlook is open.", vbYesNo)

If response = vbNo Then
    MsgBox ("You selected 'No'")
    Exit Sub
End If
'Rest of my macro code goes here...

End sub

谢谢!

3 个答案:

答案 0 :(得分:1)

确保您的代码位于Worksheet的代码模块中。从上面的注释中,您可以在模块3中指出它。它需要移动到工作表的代码模块。

enter image description here

答案 1 :(得分:0)

尝试:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("C5:C25"), Target) Is Nothing Then
        Call reminder
    End If
End Sub

答案 2 :(得分:0)

您的代码工作正常,请确保将其放在Worksheet对象中。此外,我相信代码在您保存为xlsm,关闭并重新打开之前不会处于活动状态。