2014-02-24 50 views
1

來自一位沒有經驗的vba用戶的問候..我在嘗試爲列使用命名區域時自動填充到最後一行的代碼遇到問題。當我使用列的硬編碼時,一切似乎都正常工作,在這種情況下列CW,我需要的是用命名範圍替換此列CW,以便宏添加或刪除工作表中的列時仍然工作。Excel VBA:將硬編碼列更改爲動態範圍以自動填充到最後一行

我用下面的命名範圍:

  • FIRST_DATE:這是其中一列的標題單元格(在此情況下AP5)
  • Second_Row:這是我要複製的列的範圍來自(AP7:CW7)的公式
  • Second_Cell:我想要開始自動填充的單元格(AP7)
  • Last_Column:這是我想在代碼中使用的CW列。自動填充將由此欄直到最後一行。

在不同的線程中搜索後,我想出了下面的代碼似乎很好地工作。如何將列CW更改爲命名範圍?或者我需要更改代碼?

Dim Lr As Integer 
Lr = Range("First_Date").End(xlDown).Row 'Searching last row 
Rows(Lr).Insert Shift:=xlDown 'Inserting new row 
Range("Second_Row").AutoFill Destination:=Range(Range("Second_Cell"), Range("CW" & Lr)) 

任何人都可以在這裏協助我嗎?

回答

0

這將把工作:-)完成

子RangerFiller()

「保持該公式的單元格B1

OriginalFormula =細胞(1,2).Formula

'將配方拷貝到B旁邊的最後一列,但使用可以使用另一列作爲 '計數欄.... colu MN持有的最後一個值

範圍( 「B2:B」 &細胞(Rows.Count, 「A」)結束(xlUp).Row。).Formula = OriginalFormula

結束子

+0

非常感謝,但我一直在尋找一種避免使用硬編碼的解決方案,例如將B1指定爲包含公式的單元格,因爲這可能會有所不同,這就是爲什麼我需要使用命名範圍來找到解決方案,並且有人給我解決方案,將'Range(「CW」&Lr)'轉換爲'Cells(Lr,Range(「Last_Column」)。Column)'。 – user3348141

0

有人給我的解決方案:

變化

Range("CW" & Lr) 

Cells(Lr, Range("Last_Column").Column) 
0

我遇到了類似的問題,因爲我不想硬編碼單元格引用。我發現下面的解決方案非常有用,可以使用「& ______ &」替換可以使用輸入框或公式計算的單元格編號。

例如, CELL1 =塔A

範圍( 「CW」 & CELL1 &「:CW & LR)的最後一行, 其中CELL1 =任何數量的,可以通過輸入框/式被添加

希望這有助於。 !