Excel 2010索引匹配VBA

试了一下,似乎无法得到这个。 试图用另一个工作表中的索引匹配replace一个工作表的行B(SiteTag)中的值与正确的等网站图标。

工作表(Site_Visit) SiteTag AL27 AS26 GBEM4 …

工作表(站点) SiteTag 项目名称 203AL27 AL27 203AS26 AS26 201GBEM4 GBEM4 …

我需要用表格中的SiteTag(“Site_Visit”)replace表格中相应的SiteTag(“网站”)。

现在我只是试着让代码把正确的索引值放到一个variables中,我将其作为每个单元格的值放在一个循环中运行。 但是,对于我来说,无法获得价值。 这是我已经尝试过的variables(一切都已经被声明)。

ST_Cells2 = Application.WorksheetFunction.Index("Sites!A2:A34", Application.WorksheetFunction.Match("Site_Visit!B2", "Sites!B2:B34", 0), 0) 

其中“站点!A2:A34”是适当replace值的范围“Sites_Visit!B2”是查找值“站点!B2:B34”是查找范围

我得到运行时错误'1004' Unable to get the Match property of the WroksheetFunction class 。 有人有主意吗?

索引和匹配函数期望范围,但是你发送它们的string。 将string转换为范围的最简单方法是使用Excel的Range函数:

 st_cells2 = Application.WorksheetFunction.Index(Range("Sites!A2:A34"), Application.WorksheetFunction.Match(Range("Site_Visit!B2"), Range("Sites!B2:B34"), 0), 0) 

我有同样的错误,但是当我改变为“应用程序”而不是WorksheetFunction时,它运行正常:

Cells(12, 12).Value = Application.Index("Sheet1!B1:9", 2)

以某种方式运行从应用程序的function直接工作… / K