2011-09-28 150 views
2

嘗試了一切,似乎無法得到此。嘗試用另一個工作表中的索引匹配替換一個工作表的行B(SiteTag)中的值與正確的平臺圖標。Excel 2010索引匹配VBA

工作表(Site_Visit) SiteTag AL27 AS26 GBEM4 ...

工作表(網站) SiteTag項目名稱 203AL27 AL27 203AS26 AS26 201GBEM4 GBEM4 ......

我需要用表格中的相應SiteTag(「網站」)替換表格中的SiteTag值(「Site_Visit」)。

現在我試着讓代碼將正確的索引值放入一個變量中,我將其作爲每個單元格的值放置,然後在循環中運行它。但是,對於我來說,無法獲得價值。這是我試過的變量(一切都已經聲明)。

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

去哪兒 「網站!A2:A34」 是合適的替代值 「!Sites_Visit B2」 的範圍是查找值 「網站!B2:B34」 是查找範圍

我運行時錯誤'1004' Unable to get the Match property of the WroksheetFunction class。有人有主意嗎?

回答

4

索引和匹配函數需要使用範圍,但是您正在向它們發送字符串。把字符串轉換爲範圍的最簡單方法是使用Excel的範圍功能:

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

Someboddy你是我的英雄。我一直在爲此工作兩天,我發誓我在某個時候嘗試了Range函數。這完全是我的一天!謝謝。 –

+0

嗨我也想到這個問題,但我有多個標準。我怎麼能做到這一點? – useR

+0

@useR我已經有很長一段時間沒有使用Excel了(我現在生活在Linux世界並享受每一刻),所以我將不得不將您重定向到微軟關於此問題的文章 - https:// support.microsoft.com/en-us/kb/59482 –

0

我有同樣的錯誤,但它的時候我改WorksheetFunction的「應用程序」 indstead運行正常:

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

以某種方式運行功能從應用程序直接工作... /K