首页 > 解决方案 > VBA VLookup 来自另一个关于单元格更改的 VBA 工作表

问题描述

I have some data validation on Column D, and when option 1 is chosen, it should run a makro that vlookup another sheet in the same file and input data in column G (same row).

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

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

这段代码不会返回错误,仍然什么都不做,任何人都可以猜到如何解决?

标签: excelvbavlookup

解决方案


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

推荐阅读