繁体   English   中英

在Excel VBA中对一系列单元格使用自动填充

[英]Using AutoFill in Excel VBA for a range of cells

我正在尝试编写代码,该代码将在excel电子表格中找到最后一行,并使用最后两行包含的相同公式自动填充另外24行(就像您手动执行自动填充一样)。 A列包含一个小时的日期和时间,如下所示:

26/5/15 00:00
26/5/15 01:00 
and so on...

BG列包含根据时间在A列的适当单元格中应用的公式

这是我想出的代码:

Sub FillDay()
Dim Initial_cell, Var_1, Final_End_Row As Long, Update_range, Range_To_Fill As String
Dim col, n, b As Integer, rng As Range
col = 1
If Application.WorksheetFunction.CountA(Columns(col)) = 0 Then
MsgBox "You have selected a blank column"
n = 0
Else
Set rng = Intersect(Columns(col), ActiveSheet.UsedRange)
On Error Resume Next
b = rng.Cells.SpecialCells(xlCellTypeBlanks).Count
n = rng.Cells.Count - b
On Error GoTo 0
n = n + 1
End If
'n returns the number of the last occupied cell
Initial_cell = n
Var_1 = Initial_cell - 2
Update_range = "A" & Var_1 & ":" & "G" & Initial_cell
Final_End_Row = Initial_cell + 24
Range_To_Fill = "A" & Initial_cell & ":" & "G" & Final_End_Row
Range(Update_range).AutoFill Destination:=Range(Range_To_Fill), Type:=xlFillDefault
End Sub

正在获取运行时错误'1004'应用程序定义或对象定义的错误...使用调试问题似乎在最后一行

VBA新手,欢迎任何帮助!

谢谢

将代码的最后一位更改为

Initial_cell = n - 1
Var_1 = Initial_cell - 2
Update_range = "A" & Var_1 & ":" & "G" & Initial_cell
Final_End_Row = Initial_cell + 24
Range_To_Fill = "A" & Var_1 & ":" & "G" & Final_End_Row
Range(Update_range).AutoFill Destination:=Range(Range_To_Fill), Type:=xlFillDefault

2个问题:-1您在Initial_cell中包含一个空白行(这可能是有意的?)。 2自动填充目标需要从update_range所在的同一行开始

另一件事要考虑的是,如果var_1 = initial_setup -2如果结果为负,则可能在以后导致错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM