首页 文章

制作动态VBA自动填充范围

提问于
浏览
0

目前,我有一些VBA代码可以自动填充列AE:AH中的公式,只要有更多数据发布到工作表中 . 我正在尝试将来证明它并使我的范围更加动态,以防我们添加更多的公式 . 这是当前的代码 .

Sheets(twtsumsheet).Select
usedRows1 = Worksheets(twtsumsheet).Cells(Worksheets(twtsumsheet).Rows.Count, "A").End(xlUp).Row
Range("AE2:AH2").Select
Selection.AutoFill Destination:=Worksheets(twtsumsheet).Range(Cells(2, 31), Cells(usedRows1, 34)), Type:=xlFillDefault

因此,例如,当前公式在AE:AH列中 . 假设我们要再添加一个以从数据中获得另一个计算,所以现在我们在AE:AI列中有公式 . 由于这个“范围(”AE2:AH2“),我的宏将继续自动填充AE:AH中的公式 . 选择”和此“单元格(2,31),单元格(usedRows1,34)”

我是VBA编码的新手,所以我没有得到任何好的想法 . 任何帮助表示赞赏 .

2 回答

  • 2

    我的 OCD 强迫我这个代码"clean"

    遵循@Scott Craner的建议,寻找带有数据的最后一栏 .

    Note :你应该远离使用 Select .

    With Sheets(twtsumsheet)
        usedRows1 = .Cells(.Rows.Count, "A").End(xlUp).Row
        usedCols1 = .Cells(2, .Columns.Count).End(xlToLeft).Column ' get the last column
    
        With .Range(.Cells(2, 31),.Cells(2, usedCols1))
            .AutoFill Destination:=.Range(.Cells(2, 31), .Cells(usedRows1, usedCols1)), Type:=xlFillDefault
        End With
    End With
    
  • 2

    我老实说不明白为什么这么多人使用.AutoFill当.FillDown或FillRight更合适 .

    with Sheets(twtsumsheet)
        usedRows1 = .Cells(.Rows.Count, "A").End(xlUp).Row
        usedCols1 = .Cells(2, .columns.count).End(xltoleft).column
        .Range(.Cells(2, 31), .Cells(usedRows1, usedCols1)).filldown
    end with
    

相关问题