Worksheet_change似乎没有触发

时间:2016-02-22 12:50:00

标签: excel vba excel-vba macros

我有一个宏启动并运行,它对一个数据透视表进行排序,从表中复制一系列单元格,然后将它们粘贴到第二个工作表中。说实话,我现在和VBA在一起,我对这项壮举感到非常满意。然而,我有更多我希望它做的事情。

我想要发生的是:我将数据粘贴到A列的第一个空单元格中。当发生这种情况时,我希望宏进入今天的日期(最好以使其成为永久性的方式,不会明天改为明天的日期)在C栏的同一行和文本“IV020”到D栏。

在Sheet9中,我有以下代码(主要来自这里的帖子):

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim aCell As Range

    On Error GoTo Whoa

    Application.EnableEvents = False

    If Not Intersect(Target, Columns(1)) Is Nothing Then
        If Not Target.Columns.Count > 1 Then
            For Each aCell In Target
                If aCell.Value <> "" And aCell.Offset(0, 2).NumberFormat = "" Then
                    aCell.Offset(0, 2).Value = "=TODAY()"
                    aCell.Offset(0, 3).Value = "IV020"
                End If
            Next
        Else
            MsgBox "Please paste in 1 Column"
        End If
    End If

Letscontinue:
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume Letscontinue
End Sub

然而,当事物被粘贴或手动输入A列时,没有任何反应。

1 个答案:

答案 0 :(得分:0)

你不能拥有一个零长度字符串的Range.NumberFormat property。即使您尝试手动设置一个,它也会将自身重置为常规

hash_behavior=merge

我做了一些小改动;你必须决定你想对.NumberFormat问题做些什么。