`
阅: 2383 | 回: 1
求教这段VBA程序的意思? 公式与函数 , 编号:0569 快速回复
发表于2015/11/9 18:20:18 楼主 
头像 等级:初学者
积分:1
财富值:0.0
身份:普通用户
Sub 汇总()
Application.ScreenUpdating = False
a = ThisWorkbook.Path & "\"
mz = Dir(a & "*.xls")
Do
If mz <> "汇总表.xls" Then
Workbooks.Open (a & mz)
k = k + 1
r = Application.CountA(Workbooks(mz).Sheets(1).Columns(1)) + 1
zr = Application.CountA(Workbooks(1).Sheets(1).Columns(1)) + 3
Workbooks(mz).Sheets(1).Range("a5:k" & r).Copy Workbooks(1).Sheets(1).Cells(zr, 1)
Workbooks(mz).Close True
End If
mz = Dir
Loop Until mz = ""
Workbooks(1).Sheets(1).Cells(4, 1).Resize(1, 4) = k
Workbooks(1).Sheets(1).Cells(4, 1).Resize(1, 4).NumberFormat = "@"
Application.ScreenUpdating = True
End Sub
Sub 清空()
zr = Application.CountA(Workbooks(1).Sheets(1).Columns(1)) + 1
Sheets(1).Range("a4:k" & zr).ClearContents
End Sub

我的个性签名
发表于 2015/11/10 16:13:40   
头像 等级:学者
积分:99
财富值:250
身份:普通用户

回复:楼主

这是个遍历文件 进行汇总功能,我帮你注释一下:

你需要详细了解dir 函数的功能http://wenku.baidu.com/link?url=aYqDqt3VQbb8LNDbf9BnSUbSXdxIJEUuUI9OiDtQWwZIHOLwpcLaFVhk2wYZgnXUzyRy2ne6vvSDASTC9TrFkuuMPue6rh1lvCtXbOIvaE7


Sub 汇总()
Application.ScreenUpdating = False
a = ThisWorkbook.Path & "\"
mz = Dir(a & "*.xls")          '第一次查找xls文件
Do
If mz <> "汇总表.xls" Then '不是 汇总表.xls  才进行汇总
Workbooks.Open (a & mz)
k = k + 1
r = Application.CountA(Workbooks(mz).Sheets(1).Columns(1)) + 1
zr = Application.CountA(Workbooks(1).Sheets(1).Columns(1)) + 3
Workbooks(mz).Sheets(1).Range("a5:k" & r).Copy Workbooks(1).Sheets(1).Cells(zr, 1) '拷贝 查找到的这个文件的单元格区域到 同一个工作表中
Workbooks(mz).Close True ’关闭查找到的这个文件
End If
mz = Dir '第二次查找文件
Loop Until mz = "" '直到查找完全部的xls文件


Workbooks(1).Sheets(1).Cells(4, 1).Resize(1, 4) = k
Workbooks(1).Sheets(1).Cells(4, 1).Resize(1, 4).NumberFormat = "@" ‘设置为文本格式
Application.ScreenUpdating = True
End Sub



Sub 清空()
zr = Application.CountA(Workbooks(1).Sheets(1).Columns(1)) + 1
Sheets(1).Range("a4:k" & zr).ClearContents
End Sub

我只是一个打工仔..

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。