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

问题描述 投票:1回答:3

来自一位没有经验的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))

有人可以帮助我吗?

excel vba dynamic range autofill
3个回答
1
投票

这将完成工作:-)

Sub RangerFiller()

'持有公式B1的单元格

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

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

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

结束子


0
投票

有人给了我解决方案:

更改

Range("CW" & Lr) 

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

0
投票

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

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

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

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.