2014-03-12 96 views
0

VBA新手在这里...我可以缩短这个等式吗?

我有两行代码:

Application.Goto ActiveWorkbook.Sheets("Macros").Range("F1") 
Range("F1").FormulaR1C1 = "=COUNTA(DBPaste!R[1]C[-5]:R[1000]C[-5])" 

我可以缩短这个?

我想:

Application.Goto ActiveWorkbook.Sheets("Macros").Range("F1").FormulaR1C1 = "COUNTA(DBPaste!R[1]C[-5]:R[1000]C[-5])" 

思维,可能是它,但它不工作。

谢谢!

+3

只要'ActiveWorkbook.Sheets “范围(” 宏)( “F1”)COUNTA(FormulaR1C1 =”。 !DBPaste R [1] C [-5]:R [1000] C [-5])“' –

+0

@TimWilliams我很高兴它是那么容易!为什么我不需要application.goto部分? – NumberJuan

+2

因为你没有“走出去”到(也不是“选择”,也不是“激活”)范围的方法适用于它。在这种情况下,只需将公式方法应用于范围。 –

回答

0

一个答案的缘故。正如@andy解释说,“你不必‘走出去’(也不是‘选择’,也不是‘激活’)范围的方法适用于它。在这种情况下,只需将式方法应用于该范围”,因此,通过添威廉姆斯给出:

ActiveWorkbook.Sheets("Macros").Range("F1").FormulaR1C1 = "COUNTA(DBPaste!R[1]C[-5]:R[1000]C[-5])"