Excel 将公式复制到最后一行数据
我可以看到这个问题在论坛上被问了好几次,但作为一个不太懂宏的人,我无法实现答案中提供的代码 所以我录制了下面的宏Excel 将公式复制到最后一行数据,excel,vba,Excel,Vba,我可以看到这个问题在论坛上被问了好几次,但作为一个不太懂宏的人,我无法实现答案中提供的代码 所以我录制了下面的宏 Macro6 Macro ' ' Range("C2").Select ActiveCell.FormulaR1C1 = _ "=INDEX('Account codes'!C[-1],MATCH(DATA!RC[4],'Account codes'!C[-2],0))" Range("C2").Select ActiveCell.Fo
Macro6 Macro
'
'
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=INDEX('Account codes'!C[-1],MATCH(DATA!RC[4],'Account codes'!C[-2],0))"
Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=INDEX('Account codes'!C2,MATCH(DATA!RC[4],'Account codes'!C1,0))"
Range("C2").Select
Selection.Copy
Range("E2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=INDEX('Account codes'!C2,MATCH(DATA!RC[4],'Account codes'!C1,0))"
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=INDEX('Account codes'!C2,MATCH(DATA!RC[3],'Account codes'!C1,0))"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E4")
Range("E2:E4").Select
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C4")
Range("C2:C4").Select
End Sub
简单来说,我希望Selection.AutoFill Destination:=range2:E4向下填充到最后一行数据,而不仅仅是E4。这是因为数据的大小可以改变
怎么做?您似乎正在用不同的相对/绝对引用覆盖某些公式。就相对/绝对寻址而言,使用哪一个似乎并不重要,但列E有两个不同的公式,它们引用数据工作表上的两个不同单元格。我将使用这两种方法中的后一种 立即将所有公式放入所有单元格中。在这种情况下,自动填充被高估且功能冗余 列C的公式似乎使用了对列F中单元格的相对引用。您可以使用该列确定要将公式放入的最后一行
sub buildFormulas()
dim lr as long
with worksheets("data")
lr = .cells(.rows.count, "F").end(xlup).row
.range(.cells(2, "C"), .cells(lr, "C")).formular1c1 = _
"=INDEX('Account codes'!C2, MATCH(RC7, 'Account codes'!C1, 0))"
.range(.cells(2, "E"), .cells(lr, "E")).formular1c1 = _
"=INDEX('Account codes'!C2, MATCH(RC8, 'Account codes'!C1, 0))"
end with
end sub
这些公式的工作表名是什么?我没有写代码。我使用了record宏函数,只是执行了我想做的事情。那么我在哪里插入代码呢?我能猜出宏是怎么说的,但我根本不知道它的结构。谢天谢地,每个配方好像你做了两次。你可能想研究一下。是的,我做了,因为有两个单元格我想要这个公式,但它会索引不同的单元格。其中一个是我编辑公式的时候,我把$放进去锁定公式。