VBA工作表更改或计算事件

时间:2017-12-18 14:43:06

标签: excel vba excel-vba worksheet

我已经通过大约30-40个关于这类问题的链接,但我还没能找到解决我特定问题的方法。希望你能帮助我!

设置如下; 在sheet1中,L(12)列中有一个公式,它使用查找公式在sheet2中查找特定的ID号。在sheet2用户中,每天都会粘贴一个ID列表。如果sheet1 上的查找公式可以在列表中找到ID,则会给出值"已修复"。我希望得到一个宏,当它更改为"固定"时,会自动将ID号的整行保存到sheet3。在sheet1中。

到目前为止我在Sheet1中的代码是:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

Dim keyCells As Range

Set keyCells = Columns(12)

On Error Resume Next
    Set keyCells = Application.Union(keyCells, keyCells.Precedents)
On Error GoTo 0

If Not Application.Intersect(Target, keyCells) Is Nothing Then
 '   Application.EnableEvents = False
    Dim a As Range

    For Each a In Intersect(Target, Columns(12))

        If CBool(Len(a.Value2)) And Target.Value = "Fixed" Then _
            a.EntireRow.Copy _
                Destination:=Sheets(3).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)      

    Next a
End If

Application.EnableEvents = True
End Sub

问题是它只在我手动对sheet1进行更改时运行,而不是在值更改为&#34时运行;#34;固定"当我在sheet2上做了一些事情时!

我已经尝试了一些带有worksheet_calculate的版本但是它一直在运行,而且不仅在L列中运行。

感谢您的帮助!

0 个答案:

没有答案