自动填充到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中的命名范围的主要内容,如果未能解决你的问题,请参考以下文章