2015-09-25 60 views
1

我想製作一個宏將運行vlookup,然後自動填充到最後一個包含數據的相鄰單元。當我最初創建宏時,數據集包含1917行數據,這就是爲什麼您會繼續看到它參考1917。但是,數據集每日大小不一。宏自動填充下來VLookUp結果向下到最後一個相鄰的單元

這個特定的宏需要幾個步驟,讓這一點之前:

  1. 將文本轉換爲列
  2. 刪除是從支撐報告
  3. 添加標題,以5列提供了必要的列
  4. 調整所有的列來修復數據
  5. 然後它運行第一個vlookup,我需要數據填充到最後一個相鄰的單元格Ë離開
  6. 然後運行另一個vlookup,我還需要下填寫向左

這裏的最後一個相鄰的單元爲兩個vlookup的代碼,我掙扎:

Range("E2").Select 
ActiveCell.FormulaR1C1 = _ 
    "=VLOOKUP(RC[-4],'CURRENT DAY'!R[-1]C[-4]:R[2498]C[1],5,0)" 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-4],'CURRENT DAY'!R1C1:R2500C6,5,0)" 
Range("E2").Select 
Selection.AutoFill Destination:=Range("E2:E1917") 
Range("E2:E1917").Select 
Columns("E:E").EntireColumn.AutoFit 
Range("F2").Select 
ActiveCell.FormulaR1C1 = _ 
    "=VLOOKUP(RC[-5],'CURRENT DAY'!R[-1]C[-5]:R[2498]C,6,0)" 
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-5],'CURRENT DAY'!R1C1:R2500C6,6,0)" 
Range("F2").Select 
Selection.AutoFill Destination:=Range("F2:F1917") 
Range("F2:F1917").Select 
+0

看來,要插入一個公式,然後立即替換爲另一種公式,即是不看入同一地區。選擇「E2」單元后,看兩行。 –

+1

那麼,你想用實際的最後一個行號來交換1917?在這種情況下,你可能想看看這個問題:http://stackoverflow.com/questions/71180/how-can-i-find-last-row-that-c​​ontains-data-in-the-excel-表格與微距 – Ralph

+0

嗨斯科特,謝謝你看看這個。他們是兩個不同的VLookUps。它運行一個vlookup並返回一塊數據,然後我需要宏將公式填入列中的列,直到最後一個有數據相鄰的單元格。然後它需要執行相同的操作,但返回不同的數據。 – RStoltz

回答

0

不需要自動填充。只要找到在A列中的最後一行,並用它來表示一個區間,把R1C1公式

Dim lastrow As Long 
lastrow = Range("A2").End(xlDown).Row 

Range("E2:E" & lastrow).FormulaR1C1 = "=VLOOKUP(RC[-4],'CURRENT DAY'!R1C1:R2500C6,5,0)" 

Range("F2:F" & lastrow).FormulaR1C1 = "=VLOOKUP(RC[-5],'CURRENT DAY'!R1C1:R2500C6,6,0)" 

Columns("E:F").EntireColumn.AutoFit 
相關問題