EXCEL 中用宏为单元格生成公式

C2单元格公式是这个
=AVERAGE(VLOOKUP(A2,'0504'!A:C,3,FALSE),VLOOKUP(A2,'0505'!A:C,3,FALSE),VLOOKUP(A2,'0506'!A:C,3,FALSE),VLOOKUP(A2,'0507'!A:C,3,FALSE),VLOOKUP(A2,'0508'!A:C,3,FALSE),VLOOKUP(A2,'0508'!A:C,3,FALSE))

0504~0508是5个工作表名称,想弄个宏,在改了工作表名称后,自动将公式改变,比如变成0505~0509
然后自动填充这个C列其他单元格的公式
可能我没说明白,C3里的公式仍然是0504~0508,我的目的是,在我更换工作表为0505~0509后,执行下宏,公式就自动填充成=AVERAGE(VLOOKUP(A2,'0505'!A:C,3,FALSE),VLOOKUP(A2,'0506'!A:C,3,FALSE),VLOOKUP(A2,'0507'!A:C,3,FALSE),VLOOKUP(A2,'0508'!A:C,3,FALSE),VLOOKUP(A2,'0509'!A:C,3,FALSE))

C2输入=AVERAGE(VLOOKUP(A2,INDIRECT("050"&$A$1&"!A:C"),3,FALSE),VLOOKUP(A2,INDIRECT("050"&A1+1&"!A:C"),3,FALSE),VLOOKUP(A2,INDIRECT("050"&A1+2&"!A:C"),3,FALSE),VLOOKUP(A2,INDIRECT("050"&A1+3&"!A:C"),3,FALSE),VLOOKUP(A2,INDIRECT("050"&A1+4&"!A:C"),3,FALSE))这样你在A1输入4就是0504~0508,5个工作表,在A1输入5,就是0505~0509,5个工作表。追问

谢谢,但是还是不合适,有时候工作表名并不是连续的,比如,0509 0511 0512 0515 0517,所以稳妥的方法还是需要把工作表名称直接写到公式里

追答

不连续的,那就把五个工作表输入到5个单元格,如A1:A5,=AVERAGE(VLOOKUP(A2,INDIRECT($A$1&"!A:C"),3,FALSE),VLOOKUP(A2,INDIRECT(A2&"!A:C"),3,FALSE),VLOOKUP(A2,INDIRECT(A3&"!A:C"),3,FALSE),VLOOKUP(A2,INDIRECT(A4&"!A:C"),3,FALSE),VLOOKUP(A2,INDIRECT(A5&"!A:C"),3,FALSE))

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-09
cells().formula="="追问

重点是后面啊,不会写,sheet名称,单元格都不会用变量替代,麻烦补全