2011-03-20 58 views

回答

2

当单元格内容发生变化时,可以调用宏。打开Excel的Visual Basic编辑器,并添加类似这样的工作表,您希望宏自动运行:

Private Sub Worksheet_Change(ByVal Target As Range) 
    ' Column 1 is the A column 
    If Target.Column = 1 And Target.Row = 2 Then 
    If Target.Value > 0 Then 
     ' call macro here 
     MyMacroName 
    End If 
    End If 
End Sub 
+0

谢谢伟大 - 我会试一试。这个论坛很棒 - 我一直在阅读和阅读 - 找不到答案。 – 2011-03-20 16:19:46

+0

它的工作非常奇妙,除了宏一直运行和运行 - 我想我需要在宏运行后清除该字段。 – 2011-03-20 17:18:44

+0

每次在工作表中的任何位置更改某个值时,Worksheet_Change都会运行。第一个If确保你的宏只在A2内容发生变化并且该值大于零时运行。所以你的宏不应该一直运行(除非A2总是在变化)......还要注意清除字段也被认为是一个变化。 – ssarabando 2011-03-20 17:26:54

0

更简单的解决方案是。将此放置在“ThisWorkBook”模块中

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Target.Address = Range("A2").Address and Target.Value >0 Then 

     ' do something here 
     MsgBox "This works!" 

    End If 
End Sub