ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vba合并报表(搬一下)

2020-03-24 09:02:02  阅读:295  来源: 互联网

标签:语句 vba sht 报表 合并 Explicit MyName End Option


 1 '******
 2 '函数作用:将该文件夹下所有工作簿的工作表合并到该文件的单一工作表,包括后缀是xls、xlsx、xlsm等的所有文件。
 3 '******
 4 'Option Explicit 语句在模块级别中使用,强制显示声明模块中的所有变量。Option Explicit 语句必须写在模块的所有过程之前。
 5 '如果模块中使用了 Option Explicit,则必须使用 Dim、Private、Public、ReDim 或 Static 语句来显式声明所有的变量。
 6 '如果使用了未声明的变量名在编译时会出现错误。
 7 '如果没有使用 Option Explicit 语句,除非使用 Deftype 语句指定了缺省类型,否则所有未声明的变量都是 Variant 类型的。
 8 '注意:使用 Option Explicit 可以避免键入已有变量时拼错,
 9 '在变量的范围不是很清楚的代码中使用该语句可以避免混乱。
10 '编译器的默认设置将是 Option Explicit On。
11 Option Explicit '所有变量必须先定义后使用
12 Sub 该文件夹下所有工作簿的工作表合并到该文件的单一工作表()
13 Dim MyPath$, MyName$, sh As Worksheet, sht As Worksheet, m&, IsSheetEmpty As Boolean
14 Set sh = ActiveSheet
15 MyPath = ThisWorkbook.Path & "\"
16 MyName = Dir(MyPath & "*.xls")
17 Application.ScreenUpdating = False
18 Cells.ClearContents
19 Do While MyName <> "" ' 如果_pathname_找不到,将返回零长度字符串 ("") 。
20 'https://docs.microsoft.com/zh-cn/office/vba/language/reference/user-interface-help/dir-function
21     If MyName <> ThisWorkbook.Name Then '不统计含有该VBA程序的excel文件
22         With GetObject(MyPath & MyName)
23         For Each sht In .Sheets
24           If IsSheetEmpty = IsEmpty(sht.UsedRange) Then '如果sht.UsedRange是空的,则IsEmpty返回True
25              m = m + 1
26              If m = 1 Then
27                 sht.[a1].CurrentRegion.Copy sh.[a1]
28              Else
29                 sht.[a1].CurrentRegion.Offset(0).Copy sh.[a65536].End(xlUp).Offset(1)
30              End If
31           End If
32         Next
33         .Close False
34         End With
35     End If
36     MyName = Dir
37   Loop
38 Application.ScreenUpdating = True
39 MsgBox "已完成 该文件夹下所有工作簿的工作表合并到该文件的单一工作表。"
40 End Sub

代码来源于:https://www.jianshu.com/p/28f4555d1053

标签:语句,vba,sht,报表,合并,Explicit,MyName,End,Option
来源: https://www.cnblogs.com/xurui89/p/12556779.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有