Vba 公式未填充

Vba 公式未填充,vba,excel,Vba,Excel,我试着把(A和B)前面的两行填到c列的最后一行。 但是,我的代码只插入公式,不填充。如果我继续执行代码,它将填充一行。然后,如果我再次单击“执行”,它将填充另一行 Sub row() Cells(Rows.Count, 1).End(xlUp).Offset(1, 1).Select ActiveCell.Formula = "=year(today())" 'this will be inserted into the first empty cell in column B Activ

我试着把(A和B)前面的两行填到c列的最后一行。 但是,我的代码只插入公式,不填充。如果我继续执行代码,它将填充一行。然后,如果我再次单击“执行”,它将填充另一行

Sub row()

 Cells(Rows.Count, 1).End(xlUp).Offset(1, 1).Select

ActiveCell.Formula = "=year(today())" 'this will be inserted into the first empty cell in column B
ActiveCell.Offset(0, -1).Value = "Actual" ''this will be inserted into the first empty cell in column A

ActiveCell.FillDown
end sub

首先,从评论中采纳Mat的Mug建议,并确保限定调用Cells方法的工作表/工作簿。然后,尝试下面的代码。我相信只有当下面的单元格中有东西需要替换时,填充才会起作用。否则,如果函数正在填充空单元格,它将不知道在哪里停止。相反,在C列中找到最后一个使用的单元格,然后在A行和B行的所有单元格中一次性清除所需的值/函数

Sub row()

Dim wb As Workbook
Dim ws as Worksheet
Dim rngA As Range
Dim rngB As Range
Dim rngC As Range

Set wb = ThisWorkbook
Set ws = wb.Worksheets("SheetNameHere") ' change this to an actual sheet name
Set rngA = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Set rngB = rngA.Offset(0,1)
Set rngC = ws.Cells(Rows.Count, 3).End(xlUp)

ws.Range(rngA,rngC.Offset(-2,0)).Value = "Actual" ''this will be inserted into ever empty cell in column A up to the last cell in Column C
ws.Range(rngB,rngC.Offset(-1,0)).Formula =  "=year(today())" 'this will be inserted into every empty cell in column B up to the last cell in Column C

End Sub

首先,从评论中采纳Mat的Mug建议,并确保限定调用Cells方法的工作表/工作簿。然后,尝试下面的代码。我相信只有当下面的单元格中有东西需要替换时,填充才会起作用。否则,如果函数正在填充空单元格,它将不知道在哪里停止。相反,在C列中找到最后一个使用的单元格,然后在A行和B行的所有单元格中一次性清除所需的值/函数

Sub row()

Dim wb As Workbook
Dim ws as Worksheet
Dim rngA As Range
Dim rngB As Range
Dim rngC As Range

Set wb = ThisWorkbook
Set ws = wb.Worksheets("SheetNameHere") ' change this to an actual sheet name
Set rngA = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Set rngB = rngA.Offset(0,1)
Set rngC = ws.Cells(Rows.Count, 3).End(xlUp)

ws.Range(rngA,rngC.Offset(-2,0)).Value = "Actual" ''this will be inserted into ever empty cell in column A up to the last cell in Column C
ws.Range(rngB,rngC.Offset(-1,0)).Formula =  "=year(today())" 'this will be inserted into every empty cell in column B up to the last cell in Column C

End Sub

也许你是这个意思?由于未指定目标范围,需要在填写时向上读取

Sub row()

With Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp))
    .Offset(, -1).Formula = "=year(today())"
    .Offset(, -2).Value = "Actual"
End With

End Sub

也许你是这个意思?由于未指定目标范围,需要在填写时向上读取

Sub row()

With Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp))
    .Offset(, -1).Formula = "=year(today())"
    .Offset(, -2).Value = "Actual"
End With

End Sub

您位于该列的最后一个单元格中。Excel应该做什么?另外,请阅读C列中的.I数据,但A列和B列为空白。所以我想用这个公式把这些值插入到空的A列和B列中,到CSo列的最后一个非空单元格中如果你在C1:C10中有值,你想在A1:A10中加上“实际值”,在B1:B10中加上“=年(今天)”?使用FillDown,您必须指定一个目的地。是的,这就是我想要做的。您位于列的最后一个单元格中。Excel应该做什么?另外,请阅读C列中的.I数据,但A列和B列为空白。所以我想用这个公式把这些值插入到空的A列和B列中,到CSo列的最后一个非空单元格中如果你在C1:C10中有值,你想在A1:A10中加上“实际值”,在B1:B10中加上“=年(今天)”?使用FillDown必须指定目的地。是的,这就是我要做的