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

如何在现有工作表中添加excel中的第二个宏?,excel,vba,Excel,Vba,我正在更新excel中的销售工具。它目前有一个小宏,当用户通过添加时间戳输入或选择新状态时,该宏将自动更新 我想在同一张工作表上,但在不同的单元格范围内添加另一个宏。当用户更新为“已售出”并具有新的时间戳时,这将在进行销售时更新。我尝试创建一个新变量,并使用新范围和新变量重复If/then语句,但没有成功 第一个If/Then不发出myTimeRange,但第二个If/Thenmyoldsrange不发出。 这是代码剪报 Private Sub Worksheet_Change(ByVal Ta

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

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

第一个If/Then不发出
myTimeRange
,但第二个If/Then
myoldsrange
不发出。 这是代码剪报

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
如果Intersect(目标,myTableRange)为空,则退出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