Excel VBA选择。复制不再有效

Excel VBA选择。复制不再有效,excel,selection,vba,Excel,Selection,Vba,我得到一个编译错误:此代码中预期的函数或变量 Cells(3, 2).Select ActiveCell.FormulaR1C1 = Formula 'Inserts formula 'Copies formula across the row Cells(3, 2).Copy Range(Cells(3, 2), Cells(3, 10)).PasteSpecial xlPasteFormulas Range(Cells(3, 2), Cells(3, 10)).Select 'Copies

我得到一个编译错误:此代码中预期的函数或变量

Cells(3, 2).Select
ActiveCell.FormulaR1C1 = Formula 'Inserts formula
'Copies formula across the row
Cells(3, 2).Copy
Range(Cells(3, 2), Cells(3, 10)).PasteSpecial xlPasteFormulas 
Range(Cells(3, 2), Cells(3, 10)).Select
'Copies the formula down to end of list
selection.Copy '<---- Here it says it can't compile
Range(selection, selection.End(xlDown)).FillDown
在此处使用“选择”会出现错误,但在另一个工作簿中仍然有效。我试图将一个公式插入一个单元格,在一个范围内复制它,然后填充到数据块的末尾。我怎样才能让它再次工作?或者,是否有另一种方法可以使用经常更改的公式填充一系列单元格,从而将其放入变量中

谢谢你的帮助,
Samuel Smith

您是否意外定义了一个名为selection的变量?这可能就是为什么“选择”在代码中不大写的原因。根据优化说明,最好不要选择单元格。既然您知道单元格地址,那么不妨将其设置为一个范围,并使用偏移量值进行处理。它使事情变得更快。请尝试用RangeCells3、2、Cells3、10.EndxlDown.Formula=Formula@TimWilliams你猜对了。我编写了一个名为selection的短子例程,它破坏了我的选择引用。谢谢大家!@bonCodigo和nightcrawler23,谢谢你的建议。公式中的单元格引用会随位置的变化而变化,复制公式时Excel会自动执行此操作。我仍在学习如何使用引用公式直接处理范围。