我试图编写一个代码,它会在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新手,欢迎任何帮助!
由于
答案 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可能会导致错误,如果它是否定的话