如题,注意是跨文件,不是跨表哦..
比如说文件a1的Sheet1表,b1文件的Sheet1,c1文件的Sheet1,d1文件的Sheet1表
d1文件Sheet1表 的a1单元格 =a1文件的sheet1表E1单元格数值+b1文件的sheet1表的E2单元格+C1文件的sheet1表的F2单元格数值
怎么做到,如果不用宏可以做到不,如果只能用宏VB的话,请给代码,并且,每行代码给注释,我有VB基础,只是对VBA的对象,对象属性不了解.还有它们用到的函数不了解,所以请尽量给些注释,VBA的MSN帮助用起来不入VB爽, 谢谢!
将公式
='[a1.xls]Sheet1'!E1+G4+'[b1.xls]Sheet1'!E2+'[c1.xls]Sheet1'!F2
复制后粘贴到d1文件Sheet1表 的a1单元格即可。
可以有两种作业方式(至少):
A 用公式:在要得到结果的文件的表的单位格中输入=后,把鼠标点向其它的文件的相应的表的相应单位格,之后加上运算符,再点其它的单位格,余依此作业就可以了。之后你看到公式后,你就可以自己输入了,不一定要用点的。
B 用宏作业,这要求要编写宏代码,楼上已经给出一个例子了,若有不清楚的可以加本人
新建一Excel表,与"a1.xls","b1.xls"等不要放在一起,sheet1中用以下代码,把fPath设为a1.xls所在路径。
Private Sub Worksheet_Activate()
Dim fPath As String, sName As String, n As Integer
Dim wk As Workbook
Application.ScreenUpdating = False
fPath = "E:\"
sName = Dir(fPath & "*.xls")
With ThisWorkbook.ActiveSheet
Do Until sName = ""
n = n + 1
Set wk = Workbooks.Open(fPath & sName)
.Range("A" & n) = sName
.Range("B" & n) = Application.WorksheetFunction.Sum(ActiveSheet.Range("E:E"))
wk.Close
sName = Dir()
Loop
End With
Application.ScreenUpdating = True
End Sub