Excel 从另一个调用宏

Excel 从另一个调用宏,excel,vba,Excel,Vba,我运行一个宏,如果用户在E列中输入一个值,D列为空,则会弹出一条消息。因此,用户必须先在D中输入值,然后在E中输入值。一旦用户在D中输入值,通过Vlookup公式,表格将在F列中显示一个数字。 然后,第二个宏应检查F列的值是否不等于E列中输入的值,如果不等于,则弹出消息。 第一部分工作正常,但第二部分不工作。有什么想法吗。谢谢 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Cells(Tar

我运行一个宏,如果用户在E列中输入一个值,D列为空,则会弹出一条消息。因此,用户必须先在D中输入值,然后在E中输入值。一旦用户在D中输入值,通过Vlookup公式,表格将在F列中显示一个数字。 然后,第二个宏应检查F列的值是否不等于E列中输入的值,如果不等于,则弹出消息。 第一部分工作正常,但第二部分不工作。有什么想法吗。谢谢

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Cells(Target.Row, 5).Address And Target.Value <> "" And Cells(Target.Row, 4).Value = "" Then

       MsgBox "Input value in column D"
       Cells(Target.Row, 4).Select
       Target.Clear        
    End If        
Call Macro2

End Sub

Sub Macro2()

   If Target.Address = Sheets(1).Cells(Target.Row, 5).Address And Target.Value <> "" And Target.Value <> Sheets(1).Cells(Target.Row, 6).Value Then
    MsgBox "E and F don't match"

   End If

End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果Target.Address=单元格(Target.Row,5).Address和Target.Value“”,以及单元格(Target.Row,4).Value=”“,则
MsgBox“D列中的输入值”
单元格(Target.Row,4)。选择
目标,清楚
如果结束
呼叫Macro2
端接头
亚宏观经济2()
如果Target.Address=Sheets(1).Cells(Target.Row,5).Address和Target.Value“”,以及Target.Value Sheets(1).Cells(Target.Row,6).Value,则
MsgBox“E和F不匹配”
如果结束
端接头

如果第二个是问题,则将
目标传递给它:

Private Sub Worksheet_Change(ByVal Target As Range)

    Application.EnableEvents = False                    '<--- Consider removing this line
    If Target.Address = Cells(Target.Row, 5).Address _
       And Target.Value <> "" _
       And Cells(Target.Row, 4).Value = "" Then

        MsgBox "Input value in column D"
        Cells(Target.Row, 4).Select
        Target.Clear    
    End If    

    Macro2 Target        
    Application.EnableEvents = True                      '<--- Consider removing this line
End Sub

Sub Macro2(Target As Range)

    If IsError(Target) Then
        MsgBox Target.Address & "is an error!"
    ElseIf IsError(Sheets(1).Cells(Target.Row, 6)) Then
        MsgBox Sheets(1).Cells(Target.Row, 6).Address & " is an error!"
    ElseIf Target.Address = Sheets(1).Cells(Target.Row, 5).Address _
           And Target.Value <> "" _
           And Target.Value <> Sheets(1).Cells(Target.Row, 6).Value Then
        MsgBox "E and F don't match"
    End If

End Sub
Private子工作表\u更改(ByVal目标作为范围)

Application.EnableEvents=False“如果Target.Address=Sheets(1).单元格(Target.Row,5).地址uu和Target.Value”“\uu和Target.Value工作表(1).单元格(Target.Row,6),我将收到一个错误'13'.Value然后在此行之前写入
MsgBox Target.Value
。MsgBox上有什么?是错误吗?是错误消息。显示值5不等于6@ADRSAL-然后尝试捕获错误并避免出现if情况。请参阅更新。我不太理解您试图执行的操作。但我尝试了您的代码,但仍然是g告诉我同样的错误