gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:41:25 26 4
gpt4 key购买 nike

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

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*需要来自工作表 scheduleA1:A33需要来自 Sheet Wins .它也不会占用 A1:A33 的范围因为“:”

Using Match and Address functions within Macro or VBA

最佳答案

一种方法:

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、xlWhole 的问题,请参阅:

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

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

关于excel - 如何使用具有两个匹配函数的地址函数作为宏或 VBA 的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32772027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com