Excel 如何使用具有两个匹配函数的地址函数作为宏或VBA的输入?

Excel 如何使用具有两个匹配函数的地址函数作为宏或VBA的输入?,excel,match,vba,Excel,Match,Vba,我目前有一个公式如下: ADDRESS(MATCH(Schedule!A2,Wins!$A$1:$A$33,0),MATCH(Schedule!C2,Wins!$A$1:$AG$1,0)) 我希望能够将宏中返回的单元格引用用于其他计算。我不熟悉宏,对类似问题中的一些代码感到困惑。我希望在计算中使用返回的引用,例如 Worksheets("Record").Range("**").Value = Worksheets("Record").Range("**") - 1 在下面的链接中询问的类似

我目前有一个公式如下:

ADDRESS(MATCH(Schedule!A2,Wins!$A$1:$A$33,0),MATCH(Schedule!C2,Wins!$A$1:$AG$1,0))
我希望能够将宏中返回的单元格引用用于其他计算。我不熟悉宏,对类似问题中的一些代码感到困惑。我希望在计算中使用返回的引用,例如

Worksheets("Record").Range("**").Value = Worksheets("Record").Range("**") - 1
在下面的链接中询问的类似问题中,似乎返回了消息框中的值。我不会在帖子中列出错误,因为我将始终匹配整个单元格内容,它将始终匹配参考向量中的值,并且永远不会为空。另一件事是我不理解xlvalue,xlWhole是用于。这是那篇文章的代码

Sub GetCell()
  Dim ws As Worksheet
   Dim rng1 As Range
   Set ws = Sheets("submitted")
   Set rng1 = ws.Columns("A").Find(Sheets("To_Approve").[d19], , xlValues, xlWhole)
   If Not rng1 Is Nothing Then
      MsgBox rng1.Address & " in sheet " & ws.Name
   Else
    MsgBox "not found", vbCritical
   End If
End Sub
我还尝试:

Worksheets("Wins").Cells(WorksheetFunction.Match(A1*,A1:A33,0),
    WorksheetFunction.Match(C1*,A1:A33,0).Address
我遇到的问题是,
A1*
C1*
需要来自sheet
schedule
,而
A1:A33
需要来自sheet
Wins
。此外,由于“:”的原因,它不会采用范围
A1:A33

我还尝试:

Worksheets("Wins").Cells(WorksheetFunction.Match(A1*,A1:A33,0),
    WorksheetFunction.Match(C1*,A1:A33,0).Address
工作表(“Wins”).单元格(工作表功能匹配(A1*,A1:A33,0), 工作表函数匹配(C1*,A1:A33,0).地址

但是

你可以替换

A1*由
工作表(“附表”).范围(“A1”)

C1*由
工作表(“附表”).范围(“C1”)

A1:A33 by
工作表(“Wins”)。范围(“A1:A33”)
一种方法:

Dim strTmp1$, strTmp2$, strAddress$
Dim rngTmp1 As Range, rngTmp2 As Range

strTmp1 = Worksheets("Schedule").Range("A2").Value
strTmp2 = Worksheets("Schedule").Range("C2").Value

Set rngTmp1 = Worksheets("Wins").Range("A1:A33") _
    .Find(What:=strTmp1, LookAt:=xlWhole)
Set rngTmp2 = Worksheets("Wins").Range("A1:AG1") _
    .Find(What:=strTmp2, LookAt:=xlWhole)

strAddress = Intersect(rngTmp1.EntireRow, _
    rngTmp2.EntireColumn).Address

With Worksheets("Record").Range(strAddress)
    .Value = .Value - 1
End With
关于xlValues、XLINTERAL的问题,请参阅:


特别注意:每次使用此方法时都会保存LookIn、LookAt、SearchOrder和MatchByte的设置。如果下次调用此方法时未为这些参数指定值,则会使用保存的值。设置这些参数会更改“查找”对话框中的设置,并更改“查找”对话框中的设置如果忽略参数,将更改保存的值。为避免问题,请每次使用此方法时显式设置这些参数。

我不熟悉address或match函数,但如果您试图匹配单元格,并希望在vba中进行匹配,则只需在所有情况下使用vba即可。我尝试在vba中进行所有操作。在t处列出的函数top得到了我想要的输出,但是address函数不能在VBA中使用。address函数返回单元格引用。如果我有列标题A、B、C、D和行Adam、Bob、Carl、Dan。我使用match和address函数返回单元格引用,of(Bob,D)as(E2)不应该(Bob,D)是D2吗?