2013-08-28 156 views
3

我想在Excel中使用宏記錄器來記錄一個宏以填充一列單元格,但是因爲填充每次都是不同數量的單元格填充下來或者太長,這似乎是因爲宏識別了單元格範圍和它的固定值。宏自動填充到最後一個相鄰的單元格

無論如何,我可以把它填充到最後一個人口稠密的鄰居小區。例如。自動填寫E列直到它到達D列中的最後一個填充行。我已經看過這裏的一些例子,但代碼全都看起來非常不同,所以不確定它是否可以用宏記錄器完成,或者我必須讓某人寫一些代碼還是必須手動完成的事情?

這是我在宏中的代碼。

ActiveCell.FormulaR1C1 = _ 
     "=IF(MONTH(RC[-1])>3,"" ""&YEAR(RC[-1])&""-""&RIGHT(YEAR(RC[-1])+1,2),"" ""&YEAR(RC[-1])-1&""-""&RIGHT(YEAR(RC[-1]),2))" 
    Selection.AutoFill Destination:=Range("E2:E1344") 
    'Selection.AutoFill Destination:=Range("E2:E1344") 
    Range("E2:E1344").Select 

如果有人可以幫助我會非常感激

回答

9

未經測試....但應該工作。

Dim lastrow as long 

lastrow = range("D65000").end(xlup).Row 

ActiveCell.FormulaR1C1 = _ 
     "=IF(MONTH(RC[-1])>3,"" ""&YEAR(RC[-1])&""-""&RIGHT(YEAR(RC[-1])+1,2),"" ""&YEAR(RC[-1])-1&""-""&RIGHT(YEAR(RC[-1]),2))" 
    Selection.AutoFill Destination:=Range("E2:E" & lastrow) 
    'Selection.AutoFill Destination:=Range("E2:E"& lastrow) 
    Range("E2:E1344").Select 

唯一的例外是你確定自己的自動填充的代碼是完美的......

+0

由於這是完美的,是自動填寫代碼工作很好,謝謝 – user2725363

+0

很高興我能幫助....你可以標記答案接受......勾選旁邊的右鍵我的答案 – Vasim

+0

我在這種情況下出現錯誤:Selection.AutoFill Destination:= Range(「E2:E」&lastrow)當lastrow = 2時。即(Selection.AutoFill目的地:=範圍(「E2:E2」))請給我一個解決方案 –

3

這個例子說明了如何填寫基於A列中數據的捲上的B柱調整「A1」相應滿足您的需求。它將根據B1中的公式填入B列。

Range("A1").Select 
Selection.End(xlDown).Select 
ActiveCell.Offset(0, 1).Select 
Range(Selection, Selection.End(xlUp)).Select 
Selection.FillDown 
+0

感謝這工作,但使用另一個,因爲它是爲表設置。非常感謝 – user2725363

+0

我在這種情況下得到了錯誤,Selection.AutoFill Destination:= Range(「A260:A260」)請幫忙! –

2
ActiveCell.Offset(0, -1).Select 
Selection.End(xlDown).Select 
ActiveCell.Offset(0, 1).Select 
Range(Selection, Selection.End(xlUp)).Select 
Selection.FillDown 
相關問題