我有一个可以在目标列上完美运行的代码。但是,问题是当有人插入新列时,代码无法识别出由于插入的列而导致该列已移动。
代码运行时,它将在错误的列上运行。
即使插入了新列,有人可以帮助我如何确保代码在所需列上运行。
请参见以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Oldvalue As String
Dim Newvalue As String
On Error GoTo Exitsub
If Target.Column = 24 And Target.Row > 4 And Target.Row < 500 Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
Target.Value = Oldvalue & ", " & Newvalue
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
这是可以完美运行的代码,但是如果插入了新列,则在错误的列上。