自动填充到vba中的命名范围

Posted

技术标签:

【中文标题】自动填充到vba中的命名范围【英文标题】:Autofill to named range in vba 【发布时间】:2020-03-18 07:44:38 【问题描述】:

我正在尝试编写一个宏来动态自动填充范围,正如您在照片中看到的那样:

我试过这段代码,它返回一个错误:


Sub Auto()

Dim selection1 As Range
Dim selection2 As Range
h = 1
g = 1


这两个循环我用来检测 AZ 列中的第一个空单元格,以便稍后引用它的范围

Do Until Cells(h + 1, 52).Value = ""
h = h + 1

Loop
Do Until Cells(g + 1, 1).Value = ""
g = g + 1

Loop


Set selection1 = Range("AZ" & h & ":" & "BD" & h)



Set selection2 = ActiveSheet.Range("AZ" & g & ":" & "BD" & g)

这是我测试上述想法的地方,它工作正常,选择的范围应该如图所示

Range("AZ" & h & ":" & "BD" & h).Select


'Autofill

这是我得到错误的地方:

'Selection.AutoFill Destination:=Range("AZ" & g & ":" & "BD" & g), Type:=xlFillDefault







End Sub

有什么想法吗?

【问题讨论】:

目的地必须包含来源。 【参考方案1】:

这将自动填充数据。 查找最后一行的方法与转到最后一行并按Ctrl+Up相同。

Sub Test()

    Dim LastRow1 As Long, LastRow2 As Long

    With ThisWorkbook.Worksheets("Sheet1")
        LastRow1 = .Cells(.Rows.Count, "AY").End(xlUp).Row 'Find last row in column AY.
        LastRow2 = .Cells(.Rows.Count, "AZ").End(xlUp).Row 'Find last row in column AZ.

        .Range(.Cells(LastRow2, "AZ"), .Cells(LastRow2, "BD")).AutoFill _
            Destination:=.Range(.Cells(LastRow2, "AZ"), .Cells(LastRow1, "BD"))
    End With

End Sub

【讨论】:

以上是关于自动填充到vba中的命名范围的主要内容,如果未能解决你的问题,请参考以下文章

如何使用不同的变量在 VBA 中自动填充范围

VBA Excel 2010 - 自动填充不填充

具有变化范围的自动填充/填充公式

如何自动填充公式 VBA

Excel VBA:自动填充公式的代码,无论左侧列的长度是多少(因此不需要指定范围)

Excel VBA:自动填充动态范围错误