EXCEL中用VBA如何实现公式引用,

例某表A1==SUM(SUMIF(上年结余!L:L,D3,上年结余!N:N),SUMIF(一月!L:L,D3,一月!N:N),SUMIF(二月!L:L,D3,二月!N:N),SUMIF(三月!L:L,D3,三月!N:N),SUMIF(四月!L:L,D3,四月!N:N),SUMIF(五月!L:L,D3,五月!N:N),SUMIF(六月!L:L,D3,六月!N:N),SUMIF(七月!L:L,D3,七月!N:N),SUMIF(八月!L:L,D3,八月!N:N),SUMIF(九月!L:L,D3,九月!N:N),SUMIF(十月!L:L,D3,十月!N:N),SUMIF(十一月!L:L,D3,十一月!N:N),SUMIF(十二月!L:L,D3,十二月!N:N),)(一连串公式)。现在我要将A2到A10000都引用A1的公式,用VBA该如何实现??之所以不直接拖,是因为这个公式太耗CPU,如果直接拖就基本上死机了。

Sub 复制公式()
Dim I As Integer
For I = 4 To 10002
Cells(I-2, 1) = "=SUM(SUMIF(上年结余!L:L,D" & I & ",上年结余!N:N),SUMIF(一月!L:L,D" & I & ",一月!N:N),SUMIF(二月!L:L,D" & I & ",二月!N:N),SUMIF(三月!L:L,D" & I & ",三月!N:N),SUMIF(四月!L:L,D" & I & ",四月!N:N),SUMIF(五月!L:L,D" & I & ",五月!N:N),SUMIF(六月!L:L,D" & I & ",六月!N:N),SUMIF(七月!L:L,D" & I & ",七月!N:N),SUMIF(八月!L:L,D" & I & ",八月!N:N),SUMIF(九月!L:L,D" & I & ",九月!N:N),SUMIF(十月!L:L,D" & I & ",十月!N:N),SUMIF(十一月!L:L,D" & I & ",十一月!N:N),SUMIF(十二月!L:L,D" & I & ",十二月!N:N),)"
Next I
End Sub
以上代码能在A2到A10000单元格输入你需要的公式。
因公式较长上述代码输入容易出错,可将在表格A1中编好的正确公式复制到Word中,用查找-替换的方法行得到Cells(I-2, 1) =后面长长的字符串,查找:D3,替换为:D" & i & ",注意字符串开始和末尾还要加半角引号"
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-03
Sub copyf()
dim rn as range
Screenupdating=False
for each rn in sheet1.range("A2:A10000")
rn=A1.formula
next rn
Screenupdating=true
end sub
用之前请将sheet1替换为某表。本回答被提问者采纳
第2个回答  2012-06-02
这么多公司啊。具体不是拿表过来看吧。光看这些公司,累啊。用宏写个自定义的函数一下就解决 了。
第3个回答  2012-06-02
你的A2 想计算条件为D4的和?