情境:
我有一个从Range("V4")
开始的一致公式。
此范围包含已定义名称: Stock4 (如果用户添加或删除了周围的列,则可以相对引用公式/单元格。)
电子表格会不断更新新数据(粘贴在Range("A4:U4")
)。
粘贴的行数因每批数据而异。
我需要将 Stock4 中的公式扩展到最后一行......
我在做什么:
所以,我正在使用......
的组合Dim Lastrow As Integer
Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
和
.AutoFill Destination:=Range(*insert range here*), Type:=xlFillDefault
我的手机定义名称: Stock4 。
这是我得到的:
Range("Stock4").AutoFill Destination:=Range("Stock4:$V" & Lastrow), Type:=xlFillDefault
这很有效,但是......
$V
......不是亲戚。
我尝试过的解决方案:
我尝试过使用Split(ActiveCell.Address(1, 0), "$")(0) & Lastrow
这会返回ActiveCell
列字母: V 和Lastrow
行号: 4831 < /强>
...然而
我不能简单地将此代码替换为现有代码,而不是$V" & Lastrow
(见下方)
Range("Stock4").AutoFill Destination:=Range("Stock4:Split(ActiveCell.Address(1, 0), "$")(0) & Lastrow"), Type:=xlFillDefault
除了语法错误,这根本不起作用。
问题:
如何使用VBA code
将 Stock4 中的公式扩展到 Stock4的列的最后一行(相对参考)。
(此code
将针对多个电子表格中的多个相对列进行调整和重复)
总结一下:
使用定义的名称范围和相对列将公式延伸到Lastrow。 (我已经花了2个工作日的最好时间用这个问题变灰了 - 这可能吗?一定是可能的!)
答案 0 :(得分:2)
您可以将其传递给变量并使用此表示法:
Sub MrJ()
Dim rng As Range
Dim lastrow As Integer
lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range("Stock4")
rng.AutoFill Destination:=Range(rng.Address, Cells(lastrow, rng.Column))
End Sub