Excel VBA:将硬编码列更改为动态范围以自动填充到最后一行

时间:2014-02-24 20:36:17

标签: excel vba dynamic range autofill

来自一位没有经验的vba用户的问候。我在尝试使用列的命名范围时遇到自动填充代码到最后一行的问题。当我对列使用硬编码时,一切似乎工作正常,在本例中为Column CW,我需要的是用命名范围替换此列CW,以便在工作表中添加或删除列时宏仍然有效

我使用了以下命名范围:

  • 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))

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

这将完成工作: - )

Sub RangerFiller()

'包含公式 B1

的单元格

OriginalFormula =细胞(1,2)。公式

'将公式复制到 B 旁边的最后一列,但使用可以使用另一列作为 '计数列....保存最后一个值的列

范围(“B2:B”& Cells(Rows.Count,“A”)。End(xlUp).Row).Formula = OriginalFormula

End Sub

答案 1 :(得分:0)

有人给了我解决方案:

更改

Range("CW" & Lr) 

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

答案 2 :(得分:0)

我遇到了类似的问题,因为我不想硬编码单元格引用。通过使用“& ______&”,我发现下面这个解决方案很有用替换可以使用输入框或公式计算的单元格编号。

EG。 cell1 = A列的最后一行

范围(“CW”& cell1&“:CW& Lr), 其中cell1 =可以通过输入框/公式添加的任何数字。

希望这有帮助!