Excel触发宏

时间:2009-05-14 15:42:28

标签: excel vba events triggers

我正在努力实现以下目标。任何帮助将不胜感激。

marco只涉及一个excel工作表。

我有50行信息,11列宽(A - K) 在A列的每一行中都存在IF条件 如果IF条件标记单词'OK' 我想要一个宏来触发,并执行以下操作 将单元格B中的信息复制到K,然后将其特殊粘贴回这些单元格中。

然后转到下一行

50行信息将在一天内填满。

A列中的每个ROW条件仅执行ONCE,从ROW 1开始,然后一直运行到ROW 50

触发事件'OK'将会出现,只需要等待它发生。

正如我所说,非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

使用工作表的Change事件,查看目标是否在A列中。 如果检查它是否等于'OK',则执行该行上的宏。

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub

On Error Resume Next
Dim TestRange As Range
Set TestRange = Target.Dependents

If TestRange.HasFormula And Err.Number = 0 Then
    If Left$(TestRange.Address, 2) = "$A" Then
        Application.EnableEvents = False

        If TestRange.Value = "OK" Then
            Call GreatMacro(TestRange)
        End If

        Application.EnableEvents = True
    End If
End If

End Sub

答案 1 :(得分:2)

This page显示如何设置宏以在单元格更改上运行 基本上,该方法是过度使用工作表更改功能,如果单元格是正确的,则让该函数运行。

尽量在if-this-is-correct-cell检查中保留尽可能多的内容,以确保每次更改工作表时都不会执行太多代码。