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框/公式添加的数字。
希望这可以帮助!