复制公式直到空白单元格

Copy formula until blank cell

我想在 VBA 中编写代码,将公式从 range("A3:H3") 复制到这些列,直到 J 列中有数据。我试过这段代码:

Sub fill_up()
If Not IsNull(Range("J3:J30000")) Then
Range("A3:H3").Select
Selection.Copy
Range("A4:H30000").PasteSpecial xlPasteFormulas
End If
End Sub

但无论如何我都会填满列,直到 30000. 行。 我为命令按钮编写的另一个代码:

Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
i = 3
j = 4
If Not IsEmpty(Cells(i, 9)) Then
Range("A3:H3").Select
Selection.Copy
Cells(j, 1).PasteSpecial xlPasteFormulas
Do until j > 30000
i = i + 1
j = j + 1
Loop
End If
End Sub

但这里的公式只是粘贴到第4行

有什么建议吗?

像这样:

sub test1()

iRow = 5
Do Until not IsEmpty(cells(iRow,10))
    Range(cells(3,1), cells(3,8)).Copy

    Range(cells(iRow,1), cells(iRow,8)).PasteSpecial Paste:=xlPasteFormulas

    iRow = iRow + 1
Loop

End Sub

这不会将任何内容复制到列 J 中包含数据的行中。如果您想包括该行以进行粘贴,那么您可以在 do 循环之后添加另一个粘贴操作作为快速 'n' 脏修复。

我建议使用 ActiveSheet.Usedrange.Rows.Count 属性.

引用包含数据的最后一个单元格

你的情况:

Range("A4:H" & ActiveSheet.UsedRange.Rows.Count)