【发布时间】:2025-12-07 15:50:02
【问题描述】:
谁能帮助我在 VBA 中转换此代码。 可以通过工作表功能来做到这一点。 抱歉,我是菜鸟,刚刚学习。
=INDEX($L$1:$Z$4,4,MATCH(AQ$2,$L$1:$Z$1,0))
【问题讨论】:
-
查看
worksheet.evaluate
谁能帮助我在 VBA 中转换此代码。 可以通过工作表功能来做到这一点。 抱歉,我是菜鸟,刚刚学习。
=INDEX($L$1:$Z$4,4,MATCH(AQ$2,$L$1:$Z$1,0))
【问题讨论】:
worksheet.evaluate
类似于以下内容(或使用评估),但找不到此句柄。
Sub TEST()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Sheet1") ' change
Dim indexRange As Range
Set indexRange = ws.Range("$L$1:$Z$4")
Dim matchRange As Range
Set matchRange = ws.Range("$L$1:$Z$1")
Dim searchValue As Variant
searchValue = ws.Range("AQ$2").Value2
Dim result As Variant
On Error GoTo errHand
result = Application.WorksheetFunction.Index(indexRange, 4, Application.WorksheetFunction.Match(searchValue, matchRange, 0))
MsgBox result
Exit Sub
errHand:
If Err.Number <> 0 Then
MsgBox "Value not found"
End If
End Sub
编辑:
或者按照@ScottCraner:简化
result = Application.WorksheetFunction.Index(indexRange, 4, Application.WorksheetFunction.Match(searchValue, matchRange, 0))
到
result = indexRange.Cells(4,Application.WorksheetFunction.Match(searchValue, matchRange, 0))
【讨论】:
简单!
MsgBox Evaluate("=INDEX($L$1:$Z$4,4,MATCH(AQ$2,$L$1:$Z$1,0))")
【讨论】:
Worksheets("Sheet2").Evaluate 否则它将评估活动工作表上的公式。