自动填充功能VBA



我正试图根据A列中的行数从B1单元格中的第一个单元格自动填充。我对如何解释这一点有什么想法。谢谢

Set sourceRange = Worksheets("Sheet1").Range("A1:A20") 
Set fillRange = Worksheets("Sheet1").Range("B1:B20") 
sourceRange.AutoFill Destination:=fillRange

将代码更改为:

Dim lr as Long
lr = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
Set sourceRange = WorkSheets("Sheet1").Range("A1:A" & lr)
Set fillRange = sourceRange.Resize(, sourceRange.Columns.Count + 1)
sourceRange.AutoFill Destination:=fillRange

编辑:

注意,从你的问题中还不清楚,如果你也想检测最后一列,然后:

Dim lc as Long
lc = Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column

会为您检测到它,您可以调整您的源范围,并将您的fillRange设置为最右侧的相邻列

Set sourceRange = WorkSheets("Sheet1").Range(Cells(1,1), Cells(lr, lc))
Set fillRange = sourceRange.Resize(, sourceRange.Columns.Count + 1)
sourceRange.AutoFill Destination:=fillRange

会成功的!

以下是一个猜测,因为您不确定要做什么。

Sub x()
Dim SourceRange As Range, fillRange As Range
With Worksheets("Sheet1")
Set SourceRange = .Range("A1", .Range("A" & Rows.Count).End(xlUp))
Set fillRange = .Range("A1").Resize(SourceRange.Rows.Count, 2)
End With
SourceRange.AutoFill Destination:=fillRange
End Sub

我发现的规避此问题的最佳方法如下

Range("B1").Select
Selection.Copy
ActiveCell.Offset(0, -1).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Range(Selection, "B1").Select
ActiveSheet.Paste

这不是很自动填充,但应该为你做这项工作。

最新更新