特定列的worksheet_SelectionChange

时间:2014-11-05 17:28:15

标签: excel-vba events vba excel

我的工作表中包含D栏中的发票编号。我希望在选择一个工作表时将发票编号复制到另一个工作表("详细信息")。我添加了" If IsNumeric"条件,以确保只复制包含发票#的单元格。代码似乎什么都不做,任何人都可以帮助我指出正确的方向吗?

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 4 Then On Error Resume Next Application.EnableEvents = False If IsNumeric(Target.Value) Then Sheets("Detail").Range("A5").Value = Target.Value Application.EnableEvents = True Sheets("Detail").Activate End If End If End Sub

1 个答案:

答案 0 :(得分:0)

<击> 而不是:

IsNumeric(Target.Address)

IsNumeric(Target)

<击> 修改#1:

试试这个:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 4 Then
        Application.EnableEvents = False
        If IsNumeric(Target.Value) Then
            Target.Copy Sheets("Detail").Range("A5")
        End If
        Application.EnableEvents = True
    End If
End Sub

修改#2:

您需要在同一 IF

内重新启用活动
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 4 Then
        On Error Resume Next
            If IsNumeric(Target.Value) Then
                Application.EnableEvents = False
                Sheets("Detail").Range("A5").Value = Target.Value
                Sheets("Detail").Activate
                Application.EnableEvents = True
             End If
    End If
End Sub