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

你好,从一个没有经验的VBA用户..我尝试使用列命名范围时,自动填充到最后一行代码的麻烦。 一切似乎工作正常,当我使用硬编码的列,在这种情况下列CW,我需要的是用命名的范围replace此列CW,以便macros添加或删除工作表中的列时仍然工作。

我使用了以下命名范围:

  • First_Date:这是其中一列的标题单元格(在这种情况下是AP5)
  • Second_Row:这是我想复制公式的列的范围(AP7:CW7)
  • Second_Cell:我要开始自动填充的单元格(AP7)
  • Last_Column:这是我想在代码中使用的CW列。 自动填充将由此栏到最后一行。

在不同的线程search后,我想出了下面的代码似乎很好。 如何将列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)) 

任何人都可以在这里协助我吗?

这将完成工作:-)

Sub RangerFiller()

“拥有公式B1的单元格

OriginalFormula = Cells(1,2).Formula

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

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

结束小组

有人给我解决scheme:

更改

 Range("CW" & Lr) 

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

我遇到了类似的问题,因为我不想硬编码单元格引用。 我发现下面这个解决scheme是有用的,用“&______&”replace可以使用input框或公式计算的单元格号。

例如。 cell1 =列A的最后一行

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

希望这可以帮助!