复制和粘贴行和列(带公式)并粘贴到VBA的最后一行

首先,我有多个值和公式的表。 我已经使用VBA拉下干净的数据,这是正常工作。 例如“Sheet1”,从第3行到第100列,H列到K是我有值的地方。 现在,我有一个公式在行3和列B到F,链接到列H到K上的值。我有问题复制行3并粘贴公式到工作表上的最后一行。

其次,我有12个工作表。 他们有不同的价值和公式从“表1”。 但我希望同样的行动适用于所有12张,如​​“表1”。

这里是我用来复制和粘贴我的值的代码(但它只复制一行,我希望它到底部):

Sub formula_format (data_sheet As String, row_num_start As Integer, column_num_start As Integer, row_num_end As Integer, column_num_end As Integer) Sheets(data_sheet).Select For Row = row_num_start To row_num_end If Cells(Row, column_num_start).Value2 = "" Then Range(Cells(Row - 1, column_num_start), Cells(Row - 1, column_num_end)).Copy ActiveSheet.Cells(Row, column_num_start).Select ActiveCell.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False ActiveCell.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Exit For End If Next Row End Sub 

此代码复制第一行并将其粘贴到下一行。 我需要继续工作表的最后一行。

提前致谢。 对不起,很长的职位。 这是我的第一篇文章!

除了上面我的评论,我想提供一个替代方法,如果我正确理解你正在尝试做什么(在给定的行长度下跨列复制公式),这个方法就简单得多,速度更快,维护也更容易。

 Sub formula_format(data_sheet As String, row_num_start As Integer, column_num_start As Integer, row_num_end As Integer, column_num_end As Integer) With Sheets(data_sheet) .Range(.Cells(row_num_start, column_num_start), .Cells(row_num_start, column_num_end)).AutoFill _ Destination:=.Range(.Cells(row_num_start, column_num_start), .Cells(row_num_end, column_num_end)) End With End Sub