Excel表格中如何修改下面的VBA代码,做到如果C列中有数据,保留不变,没有,按条件输入数据新的数据

下面这段代码的作用是在G列(第7列/数量)中输入大于0的数据,在C列(第3列/订单时间)中自动填入时间的代码。在实际使用中,该代码还具备以下功能:
1、在G列输入数据时,自动检测A列的客户名称是不是相同(下面的单元格是不是等于上面的单元格。如果相同,在G列输入数据时,下面的订单时间等于上面的订单时间,如A3=A2,那么C3等于C2;如果不同,在G列输入数据时,下面的订单时间不等于上面的订单时间,而等于系统时间,时间一旦输入,就不变,如A5不等于A4,在G5列输入数据时,C5等于系统当时时间)
但改代码做不到如果C列原来有时间或数据在在里面,无论在G列中输入何数据,该时间或数据都不会变,除非手工更改
所以我想请教高人,如何修改该代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
Select Case Target.Column
Case Is = 7
If Target.Value > 0 Then
With Target.Offset(0, -4)
If Target.Offset(0, -6) = Target.Offset(-1, -6) Then .Value = Target.Offset(-1, -4).Value
If .Value > 0 Then
Else
.Value = Now
.NumberFormatLocal = "yyyy-m-d h:mm;@"
End If
End With
End If
End Select
Application.EnableEvents = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
Select Case Target.Column
Case Is = 7
If Target.Value > 0 Then
With Target.Offset(0, -4)
If .Value > 0 Then
Else
If Target.Offset(0, -6) = Target.Offset(-1, -6) Then .Value = Target.Offset(-1, -4).Value
End If
If .Value > 0 Then
Else
.Value = Now
.NumberFormatLocal = "yyyy-m-d h:mm;@"
End If
End With
End If
End Select
Application.EnableEvents = True
End Sub来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-07
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 1 And Target = "*" Then
Cells(Target.Row, 1) = Cells(Target.Row, 3)
End If
End Sub
相似回答