我記錄了下面的宏:清理VLOOKUP/INDEX(MATCH())VBA
ActiveCell.FormulaR1C1 = _
"=INDEX(Sheet1!R2C2:R491C2,MATCH(Sheet2!RC[-2],Sheet1!R2C1:R491C1,0))"
Range("D2").End (xlToLeft)
Range("C2").End (xlDown)
Range("D882").Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
,正如一些你可以告訴,是結果不只是記錄,而是試圖編輯所述記錄中的「選擇」語句。但是,VBA告訴我,我正在使用.End屬性不正確。編輯這個選項的最佳方法是什麼,以便不使用select,並且使得範圍的結尾完全取決於列A中爲每行填充的值?
一個更一般的宏結構將是:
1) Select cell D2 in Sheet(1) (the cell under Header_1)
2) Write an INDEX(MATCH()) formula here referencing some specific columns in Sheet(1) and Sheet(2)
3) Select D2 in Sheet(2) and copy down to Dn where n is the first row where An = "".
然後,我會簡單地重複這對其他兩個索引所需(MATCH())的公式。
UPDATE:
是否有還辦法有INDEX(MATCH())設置以使得該柱範圍繼續只要細胞不是空白(例如R2C1:Rnonblank)。更具體地說,我可以只使用相同的& Cells()方法嗎?這些範圍將根據所針對的工作簿而變長或變短。
還有一種設置INDEX(MATCH())的方法,只要單元格不是空白(例如R2C1:Rnonblank),列範圍就會繼續。更具體地說,我可以使用相同的&Cells()方法嗎? – 114
是的 - 我修改了我的答案以證明這一點。 – Rory