Excel VBA:如何在返回地址的vba中为此编写代码

时间:2014-11-26 09:57:04

标签: excel-vba vba excel

=CELL("address",INDEX(B:B,MATCH(C23,A:A,0)))

我试过这个,但它不起作用。

Application.WorksheetFunction.cell("address", Application.WorksheetFunction.Index(Sheet1.Range(("b3"), Range("b2").End(xlDown)) _
, Application.WorksheetFunction.Match(c23, Sheet1.Range(("A3"), Range("a2").End(xlDown)), 0)))

工作表函数没有单元格,但它在excel函数的单元格函数中。

2 个答案:

答案 0 :(得分:0)

我会使用这个(如果需要,你可以将它包装在一个函数中):

Dim ind
Dim rng As Range

With Sheet1 
   ind = Application.Match(.Range("c23"), .Range("A:A"),0)
   If Not IsError(ind) Then
      Set rng = Application.Index(.Range("B:B"), ind)
      MsgBox rng.Address
   Else 
      MsgBox "There is no match"
   End If
End With

答案 1 :(得分:0)

我想出了这个:

Dim add As String
add = Sheet1.Range("B1").Offset(Application.WorksheetFunction.Match(Sheet1.Range("C23"), _
Sheet1.Range(("A1"), Range("A1").End(xlDown)), 0) - 1).Address

simoco的解决方案会更好,因为它会检查错误,但我觉得它仍然值得分享