Vba VLookup,来自VBA上有关单元格更改的另一个工作表

时间:2019-04-01 19:50:08

标签: excel vba vlookup

我在D列上进行了一些数据验证,并且选择了选项1时,它应该运行一个在同一文件中查找另一个工作表并在G列(同一行)中输入数据的makro。

这是我到目前为止所拥有的:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address(True, True) = Sheets("SERVICES BREAKDOWN").Range("$D$15") Then
        Select Case Target
            Case "ORIGIN CHARGE"
              Sheets("SERVICES BREAKDOWN").Range("$G$15").Value = Application.WorksheetFunction.VLookup(Sheets("SERVICES BREAKDOWN").Range("$D$15"), Sheets("INITIAL").Range("D15:K22"), 4, False)
                      Case Else
                'Do nothing
        End Select
    End If

此代码不会返回错误,但仍然无法执行任何操作,任何人都可以猜测如何解决?

1 个答案:

答案 0 :(得分:2)

  

Target.Address(True, True) = Sheets("SERVICES BREAKDOWN").Range("$D$15")

将尝试将D15中的值与目标地址进行比较,除非D15中有其自己的地址,否则将永远不会如此。

Range().Address返回一个字符串,请使用:

If Target.Address(1,1) = "$D$15" then

或者很流行:

If Not Intesect(Target,Range("$D$15")) Is Nothing Then