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

时间:2015-05-26 12:03:34

标签: excel vba excel-vba

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

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

列B-G包含根据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新手,欢迎任何帮助!

由于

1 个答案:

答案 0 :(得分:0)

将代码的最后一位更改为

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可能会导致错误,如果它是否定的话