如何在现有工作表中添加excel中的第二个宏



我正在excel中更新一个销售工具。它目前有一个小宏,当用户通过添加时间戳输入或选择新状态时,它将自动更新。

我想在同一工作表上添加另一个宏,但在不同的单元格范围内。当用户更新到SOLD以具有新的时间戳时,这将在进行销售时更新。我尝试创建一个新的变量,并用新的范围和新的变量重复If/then语句,但没有成功。

第一个If/Then在不发出myTimeRange的情况下工作,但第二个If/ThenmySoldRange则不工作。这是代码剪切

Private Sub Worksheet_Change(ByVal Target As Range)
Dim myTableRange As Range
Dim myDateTimeRange As Range
Dim myUpdatedRange As Range
Dim mySoldRange As Range
Dim mySoldTimeRange As Range
Dim mySoldUpdatedRange As Range
Set myTableRange = Range("A2:E300")
Set mySoldRange = Range("H2:K300")

If Intersect(Target, myTableRange) Is Nothing Then Exit Sub
Set myDateTimeRange = Range("F" & Target.Row)
Set myUpdatedRange = Range("G" & Target.Row)
If myDateTimeRange.Value = "" Then

myDateTimeRange.Value = Now

End If
If Intersect(Target, mySoldRange) Is Nothing Then Exit Sub
Set mySoldTimeRange = Range("H" & Target.Row)
Set mySoldUpdatedRange = Range("K" & Target.Row)
If mySoldTimeRange.Value = "" Then

mySoldTimeRange.Value = Now
End If
myUpdatedRange.Value = Now
mySoldUpdatedTimeRange.Value = Now
End Sub

If Intersect(Target, myTableRange) Is Nothing Then Exit Sub

如果要测试Target是否与另一个范围相交,则不能在此处使用Exit Sub

改为:

If Not Intersect(Target, myTableRange) Is Nothing Then
Set myDateTimeRange = Range("F" & Target.Row)
Set myUpdatedRange = Range("G" & Target.Row)
If myDateTimeRange.Value = "" Then
myDateTimeRange.Value = Now
End If    
End If

类似地(虽然在技术上没有必要,但要保持一致(:

If Not Intersect(Target, mySoldRange) Is Nothing Then
...
End If

最新更新