【问题标题】:How to Dynamically AutoFill Destination using VBA?如何使用 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 个链接。解决方案的组合似乎都不适用于我的特殊情况。

【问题讨论】:

    标签: excel vba autofill


    【解决方案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?
    猜你喜欢
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多