|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 liulang0808 于 2013-9-25 08:49 编辑
QQ:2645090239,可以加我或者QQ群:281250721
之前帮助别人处理一批文件,要考虑不打开其他excel文件,而读取其内容并进行累加。
在这里也发不过求助帖,也有人想了解这个问题。
经过变通实现了,在这里与大家分享一下:
详见附件,代码如下:
Public num1 As Integer, HZREND, Moncb, MyName
Sub addfiles()
HZRST = 2 '汇总表起始行号
HZCST = 1 '汇总表起始列号
HZCEND = 4 '汇总表结束列号
OTRST = 2 '其他文件的起始行,本程序与汇总表都是一致的
OTCST = 1 '其他文件的起始列,本程序与汇总表都是一致的
HZREND = 9 '区域的结束行号
Dim Mypath
Mypath = ThisWorkbook.Path & "\" ' 指定路径。
MyName = Dir(Mypath, vbDirectory) '
Moncb = "sheet1"
Range("a2:d9").ClearContents
Application.ScreenUpdating = False
Do While MyName <> ""
If MyName <> "." And MyName <> ".." And MyName <> ThisWorkbook.Name Then
Call addfilecells(HZRST, HZREND, HZCST, HZCEND, OTRST, OTCST, Moncb)
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
End Sub
Sub addfilecells(HZRST, HZREND, HZCST, HZCEND, OTRST, OTCST, Moncb)
a1 = 0
For i = HZCST To HZCEND '读取列号
str1 = Cells(OTCST + a1, 5) '所在列对应的字母,汇总表里的E列
x1 = OTRST
a1 = a1 + 1
For k = HZRST To HZREND '读取行号
sum1 = Cells(k, i)
str2 = ThisWorkbook.Path & "\[" & MyName & "]" & Moncb & "'!$" & str1 & "$" & x1
Cells(k, i) = "='" & str2
x1 = x1 + 1
Cells(k, i) = Val(Cells(k, i)) + Val(sum1)
Next k
Next i
End Sub
|
评分
-
3
查看全部评分
-
|