【问题标题】:Index Match in VBA Formula propertyVBA 公式属性中的索引匹配
【发布时间】:2017-10-02 09:12:24
【问题描述】:

我一直在尝试遍历一系列单元格并应用索引匹配。因此,到目前为止,索引匹配仅适用于范围的第一行(因此它不是循环的)。我正在提供代码。

Dim LastRow As Long
Sheets("REPORT").Select
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Range("C2:C" & LastRow).Formula "=INDEX('2609'!C:C,MATCH('REPORT'!A2,'2609'!E:E,FALSE))"

【问题讨论】:

  • 只是猜测:您可能会尝试锁定A2,例如MATCH('REPORT'!$A$2,'2609'!E:E,FALSE)

标签: vba excel excel-formula


【解决方案1】:

Range("C2:C" & LastRow).Formula "=INDEX('2609'!C:C,MATCH('REPORT'!A2,'2609'!E:E,FALSE))"

作为

Range("C2:C" & LastRow).Formula ="=INDEX('2609'!C:C,MATCH('REPORT'!A2,'2609'!E:E,FALSE))"

您缺少= 标志。

你的代码可以写成

Sub Demo()
    Dim ws As Worksheet
    Dim LastRow As Long

    Set ws = ThisWorkbook.Sheets("REPORT")
    With ws
        LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("C2:C" & LastRow).Formula = "=INDEX('2609'!C:C,MATCH('REPORT'!A2,'2609'!E:E,FALSE))"
    End With
End Sub

【讨论】:

  • 谢谢米格!但是,除了第一个单元格之外,它一直向该范围内的所有单元格显示 #N/A
  • @PericlesFaliagas - 你确定所有其他值都匹配吗?如果是,请检查Column C 中的公式,它应该=INDEX('2609'!C:C,MATCH(Report!A2,'2609'!E:E,FALSE)) inC2 然后=INDEX('2609'!C:C,MATCH(Report!A3,'2609'!E:E,FALSE))C3Report!A2,A3,A4,... 应该改变。
  • 再次感谢!我手动检查了值...从第二行及上方,即使对于手动公式,它也显示为#N/A。但是应该有结果,因为我单独检查了它们,并且有匹配的值...但是公式不起作用..知道为什么吗?
  • @PericlesFaliagas - 如果即使手动输入公式也无法正常工作,那么我确信数据可能存在一些问题。那么是否可以分享一些你所拥有的虚拟/样本数据。
  • 我们可以开始对话并让我分享文件吗?
猜你喜欢
  • 2014-02-09
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 2017-08-16
  • 2018-11-10
相关资源
最近更新 更多