我在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
此代码不会返回错误,但仍然无法执行任何操作,任何人都可以猜测如何解决?
答案 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