【问题标题】:Return matching named table in worksheet function VBA在工作表函数VBA中返回匹配的命名表
【发布时间】:2016-11-08 23:42:52
【问题描述】:

有谁知道如何在表中返回值:

WorksheetFunction.Match

或者还有其他任何可以使用的替代功能,以使其正常工作。

rowNum = WorksheetFunction.Match(sum.Range("coverage").Table, temp.Range("A1:A200"), 0) 'colNum = WorksheetFunction.Match(sum.Range("Header").Value, temp.Range("CoverageT"), 0)

上面我尝试使用 WorksheetFunction 让它工作,但失败了。我将表命名为 'coverage 和 'header 以使其发挥作用,但我没有成功。

我希望我的问题足够清楚,可以得到帮助! 如果还不够清楚,请发表评论!

【问题讨论】:

  • 是的,我不清楚您到底在尝试什么。你能用截图解释一下吗?
  • 我还不能添加屏幕截图,因为我需要 10 个声望徽章,但我会更清楚我目前面临的问题。我想使用“workSheetfunction.Match”来匹配名为“summary”的工作表中名为“coverage”的表与从“A1:A200”列通过网络上传的表。@SiddharthRout 我已附上在另一条评论中我的代码的完整版本
  • 以@SiddharthRout 结尾
  • 在某处上传屏幕截图.. n 提供链接
  • lh5.googleusercontent.com/-uYox0RzKgy4/UlP9tVElSVI/AAAAAAAAAEQ/…> lh6.googleusercontent.com/-fl2I2vw-1Y4/UlP6WL7nKLI/AAAAAAAAADQ/…>

标签: vba excel worksheet-function


【解决方案1】:

WorksheetFunction.Match 为您获取单个列范围或单个行范围中的值的相对位置。如果您的项目在列表中排名第三,则返回 3。

如果您想要表中的值,请使用 WorksheetFunction.VLookup。您正在表格或范围的第一列中查找您的项目。您指定要从哪一列获取值,它将返回匹配行中的单元格值。

或者对转置表使用 HLookup。

如果你真的想使用 Match,试试这个:

dim KeyValue as string
KeyValue = "my item"

Dim rowNum as Variant
If Not VBA.IsError(Application.Match(KeyValue, temp.Range("A1:A200"), 0)) Then
    rowNum = Application.Match(KeyValue, temp.Range("A1:A200"), 0)
End If

如果你想要一个 vlookup 试试这个:

Dim RetVal As Variant
Dim KeyValue As String 'or integer or date as appropriate
Dim LookupTable As Range
Dim ColumnNumber As Integer

KeyValue = "myItem"
LookupTable = Range("A1:A200")
ColumnNumber = 2
RetVal = WorksheetFunction.VLookup(KeyValue, LookupTable, ColumnNumber, False)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    相关资源
    最近更新 更多