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

时间:2015-09-24 22:33:44

标签: excel-vba match vba excel

我目前有一个公式,内容如下:

ADDRESS(MATCH(Schedule!A2,Wins!$A$1:$A$33,0),MATCH(Schedule!C2,Wins!$A$1:$AG$1,0))

我希望能够使用宏中返回的单元格引用进行其他计算。我是Macros的新手,对类似问题中的一些代码感到困惑。我想在计算中使用返回的引用,例如。

Worksheets("Record").Range("**").Value = Worksheets("Record").Range("**") - 1

在下面的链接中提到的类似问题似乎返回消息框中的值。我不会在帖子中列出错误,因为我将始终匹配整个单元格内容,它将始终与参考向量中的值匹配,永远不会为空。另一件事是我不明白xlValues, 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*需要来自工作表schedule,而A1:A33需要来自工作表Wins。由于“:”

,它也不会占用范围A1:A33

Using Match and Address functions within Macro or VBA

2 个答案:

答案 0 :(得分:1)

一种方法:

make CFLAGS=-O0

关于xlValues,xlWhole的问题,请参阅:

https://msdn.microsoft.com/en-us/library/office/ff839746.aspx

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

答案 1 :(得分:0)

  

我也尝试过:

     

工作表( “胜”)细胞(WorksheetFunction.Match(A1 *,A1:A33,0),       WorksheetFunction.Match(C1 *,A1:A33,0)。地址

     

但是...

你可以替换

A1 * Worksheets("schedule").range("A1")

C1 * Worksheets("schedule").range("C1")

A1:A33 Worksheets("Wins").range("A1:A33")