尝试了一切,但似乎无法得到这个。尝试使用另一个工作表中索引匹配中的正确站点标记替换一个工作表的 B 行(站点标记)中的值。
Worksheet(Site_Visit) SiteTag AL27 AS26 GBEM4 ...
Worksheet(Sites) SiteTag Project Name 203AL27 AL27 203AS26 AS26 201GBEM4 GBEM4 ... ...
我需要将 Sheets("Site_Visit") 中的值 SiteTag 替换为 Sheets("Sites") 中的相应 SiteTag。
现在,我只是尝试获取代码,将正确的索引值放入变量中,并将其作为每个单元格的值,并在循环中运行它。但我一生都无法让它获得值(value)。这就是我对变量所做的尝试(所有内容都已声明)。
ST_Cells2 = Application.WorksheetFunction.Index("Sites!A2:A34", Application.WorksheetFunction.Match("Site_Visit!B2", "Sites!B2:B34", 0), 0)
其中“Sites!A2:A34”是适当替换值的范围 “Sites_Visit!B2”是查找值 “Sites!B2:B34”是查找范围
我收到运行时错误“1004”无法获取 WroksheetFunction 类的 Match 属性
。大家有什么想法吗?
最佳答案
索引和匹配函数需要范围,但您向它们发送字符串。将字符串转换为范围的最简单方法是使用 Excel 的 Range 函数:
st_cells2 = Application.WorksheetFunction.Index(Range("Sites!A2:A34"), Application.WorksheetFunction.Match(Range("Site_Visit!B2"), Range("Sites!B2:B34"), 0), 0)
关于Excel 2010索引匹配VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7576947/