如何使用 VBA 动态自动填充目标?
Posted
技术标签:
【中文标题】如何使用 VBA 动态自动填充目标?【英文标题】:How to Dynamically AutoFill Destination using VBA? 【发布时间】:2020-06-19 12:02:12 【问题描述】:我有两个表 Table1 和 Table2。 表 1 在 C 列中有一个手动输入,用于更新该表上的其他列。 Table2 依赖于手动输入来自动填充所有的表值。
数据示例:
如何动态更新 Table2?两个表都发生了很大的变化,以至于我拥有引用每个表的最后一行的动态范围。
我有以下代码,这只是我遇到问题的一行,因为它出错了。
Sub Auto_Fill()
' Auto_Fill Macro
Range("Table1[[#Headers],[U/C LEVEL]]").End(xlDown).Select
If Not IsEmpty(ActiveCell.Value) Then
Range("Table3[#Headers]").End(xlDown).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.AutoFill Destination:=Range(**THIS IS THE BIT I'M HAVING TROUBLE WITH**), Type:=xlFillDefault
Range("Table3[[#Headers],[HEIGHT DIFF.]]").End(xlDown).Select
End If
End Sub
我不知道如何完成这个:
Selection.AutoFill Destination:=Range(THIS IS THE BIT I'M HAVING TROUBLE WITH), Type:=xlFillDefault
我想在 Table1 的 C 列中找到最后一个值,如果不为空,我想找到 Table2 的最后一行,并使用当前在 Table2 中的所有公式和值自动填充 Table2 行的一行。
我尝试了大约 20 个链接。解决方案的组合似乎都不适用于我的特殊情况。
【问题讨论】:
【参考方案1】:假设您要自动填充 Table3,请尝试...
Dim lastListRow As ListRow
With ActiveSheet.ListObjects("Table3")
Set lastListRow = .ListRows(.ListRows.Count)
End With
With lastListRow
.Range.AutoFill Destination:=.Range.Resize(2), Type:=xlFillDefault
End With
【讨论】:
这非常有帮助!非常感谢你。我对此还有另一个问题...您如何使调整大小格式动态化?如果不将其设置为特定数字并且依赖于表 3,这是否可行? 太好了,很高兴能帮上忙!不过,关于您的后续问题,您能否解释一下您希望如何调整大小依赖于 Table3?以上是关于如何使用 VBA 动态自动填充目标?的主要内容,如果未能解决你的问题,请参考以下文章