VBA学习笔记(9)--生成点拨(1)

说明(2017.3.26):

1. 还没写完,写到新建文件夹了,下一步新建word,重命名,查找点拨,把点拨复制进去,因为要给点拨编号,应该会很麻烦

  1 Public Sub test1()2     Dim path3     Dim filename4     Dim folders(1 To 100)5     Dim i%, j%6     i = 17     j = 18 '    1. 先获取所有的文件夹9     path = ThisWorkbook.path & "\oriFolder\"10     folders(1) = path11 '    这里的folders数组和下面的classes数组只设置了100个长度,是为了调试方便,不然有时会出现大量空行,实际中可以增大。12 '    dir第二次无参数调用,返回的是同一个文件夹下的第二个文件!!13 '    filename = Dir(folders(i), vbDirectory)这里filename获取的首先是folders(1)路径下的文件夹"."14 '    dir找到第一个文件夹".",这时i=1,进入do循环,把oriFolder这一层的文件夹都dir出来(101和102),15 '    找到一个文件夹就把j加1(最后j=3),把folders(i)修改为"."路径,101路径和102路径,里面的do until循环就做了这么个事16 '    do until做完之后,i要加1了,变成2,这时的filename = Dir(folders(i), vbDirectory),folders(2)就是do until循环里已经修改的101路径了,17 '    继续do until循环,j目前=3,然后开始增加,目的是让folders(j)数组继续往后增加元素,等把101路径里所有文件夹路径添加进去之后,18 '    i变成3,再开始遍历102文件夹19 '    如果101里面还有文件夹,就等把101和102都遍历完后,因为i每次只加1,而j是只要有一个文件夹就加1,20 '    所以只要i没有到j的数量,就会一直遍历下去,把所有的子文件遍历出来21     Do While i <= j22         filename = Dir(folders(i), vbDirectory) ' filename="."23         Do Until filename = ""24             If InStr(filename, ".") = 0 Then25                  j = j + 126 '                当i=1的时候,folders(j)中的1,2,3分别是",",101,102目录27                 folders(j) = folders(i) & filename & "\"28             End If29             filename = Dir30         Loop31         i = i + 132     Loop33 '    For p = 1 To UBound(folders)34 '        If folders(p) <> "" Then35 '            Debug.Print (folders(p))36 '        End If37 '    Next38 '    2. 从每个文件夹里获取所有课,存入一个数组39 Dim classes(1 To 100)40 Dim class41 Dim p42 Dim q43 p = 144 q = 145 46 For p = 1 To UBound(folders)47     If folders(p) <> "" Then48         class = Dir(folders(p) & "*.*")49         Do Until class = ""50             classes(q) = folders(p) & class51             q = q + 152             class = Dir53         Loop54     End If55 Next56 57 58 '3. 在desFolder里新建文件夹,生成点拨rtf59 Dim path260 '先来一套正则相关的dim as61 Dim reg As RegExp62 Dim myMatches As MatchCollection63 Dim myMatch As match64 Dim books(1 To 10)65 Dim bNum66 Dim m67 Dim n68 n = 169 m = 170 bNum = 171 '再来一套操作word的dim as72 Dim wordApp As Word.Application73 Set wordApp = New Word.Application74 path2 = ThisWorkbook.path & "\desFolder\"75 Set reg = New RegExp76 '获取所有版本文件夹名77 filename2 = Dir(path, vbDirectory)78 Do Until filename2 = ""79     If InStr(filename2, ".") = 0 Then80         books(bNum) = filename281         bNum = bNum + 182     End If83     filename2 = Dir84 Loop85 '在desFolder里面生成版本文件夹86 For m = 1 To UBound(books)87 '    books(m)不为空,并且文件夹不存在,就新建文件夹88     If books(m) <> "" And Dir(path2 & books(m), vbDirectory) = "" Then89         MkDir (path2 & books(m))90 '        新建word,命名为“01_《繁星》_DianBo.doc”91 '        打开每课,查找点拨,复制到word中,格式为1-1-2-1-1【点拨】,第1单元-第1课-2复习-1课堂回顾-第1个点拨92 93         For n = 1 To UBound(classes)94             If classes(n) <> "" Then95                 wordApp.Documents.Open (classes(n))96                 97             End If98         Next99     End If
100 Next
101 'For x = 1 To UBound(classes)
102 '    If classes(x) <> "" Then
103 '        reg.Global = True '全局匹配
104 '        reg.IgnoreCase = True '忽略大小写
105 '        reg.Pattern = "(,*)?101_.*" '正则表达式
106 '        Set myMatches = reg.Execute(classes(x)) '匹配到的结果返回到myMatches集合
107 '        For Each myMatch In myMatches '遍历myMatches集合
108 '            If myMatch <> "" Then
109 '                Debug.Print (classes(x))
110 '            End If
111 '        Next
112 '
113 '    End If
114 'Next
115
116 End Sub

转载于:https://www.cnblogs.com/medik/p/10989743.html

VBA学习笔记(9)--生成点拨(1)相关推荐

  1. VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿

    VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿 1.对每行数据按照类别所在列进行循环,判断某类别的工作簿是否存在: 2.如果不存在,则新建工作簿并将该行数据复制粘贴: 3.如果存在则打开 ...

  2. 陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮

    陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮:新建一个我的菜单按钮 设置对应的宏过程名称为 [我的菜单宏] 点击按钮弹窗信息,信息可自定义设置 详细代码如下: Sub 新建右键菜单()Dim 菜单 ...

  3. VBA学习笔记2:将工作簿的表格拆分为工作簿

    VBA学习笔记2:将工作簿的表格拆分为工作簿 1.判断原有工作簿的sheet是否需要拆分: 2.如需拆分则创建新表: 3.将原sheet复制到新建的工作簿中. 效果如下: 代码执行前,有1个工作簿,需 ...

  4. VBA学习笔记8:单元格的合并与拆分

    VBA学习笔记8:单元格的合并与拆分 如下图,需要实现1图到2图(单元格合并),或2图到1图(单元格拆分). 1图: 2图: 合并单元格代码如下: Sub 合并单元格()Dim k%, rng As ...

  5. VBA学习笔记3:合并同一工作簿下的多个表格

    VBA学习笔记3:合并同一工作簿下的多个表格 1.建立一个新的汇总表: 2.将其他sheet数据复制到汇总表中. 效果如下: 需要将3个sheet的表的数据汇总起来 汇总后的数据: 代码如下: Sub ...

  6. VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接

    VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接 1.将文件夹中的xlsx文件名复制到新工作簿: 2.将文件夹中的xlsx数据簿中的sheet复制到新表并重命名: 3.插入超 ...

  7. Excel VBA 学习笔记13:单元格的格式

    Excel VBA 学习笔记13:单元格的格式 NumberFormat 属性 (Excel) vba excel 单元格格式设置 Excel VBA 单元格格式 python解决SNIMissing ...

  8. VBA 学习笔记 - 网络请求

    VBA 学习笔记 - 网络请求 Microsoft.XMLHTTP MSXML2.serverXMLHTTP.6.0 WinHttp.WinHttpRequest.5.1 参考资料 Microsoft ...

  9. 【TensorFlow-windows】学习笔记七——生成对抗网络

    前言 既然学习了变分自编码(VAE),那也必须来一波生成对抗网络(GAN). 国际惯例,参考网址: 论文: Generative Adversarial Nets PPT:Generative Adv ...

最新文章

  1. TF之TFSlim:利用经典VGG16模型(InceptionV3)在ImageNet数据集基础上训练自己的五个图像类别数据集的训练过程记录
  2. MySQL InnoDB表压缩
  3. 什么是爱?什么是幸福?
  4. RoBERTa中文预训练模型:RoBERTa for Chinese
  5. tab翻页导致的问题
  6. 2019 ICPC 南京网络赛 F Greedy Sequence
  7. .Net笔试题 有答案
  8. mysql查询无主键的表的方法:
  9. 老生常谈的一个问题,转行学习编程,是自学还是报班
  10. 既然Tengine比Nginx更强大,为什么Tengine没有取代Nginx呢?
  11. DNS***泛滥 网络安全迫在眉睫
  12. 解决办法:atoi不能将CString 转化为char *
  13. 戒烟、写作、赚美金:我的2020【CSDN年度征文】
  14. 用indy收邮件的问题,怎么样把邮件存放到本地,最好是存到数据库
  15. BUUCTF misc 解题记录 一(超级详细)
  16. mybatis数据库字段增加
  17. ipa在线安装搭建_最新!超级签名系统源码以及搭建过程
  18. linux内存显示少,linux 显示的内存怎么少于我实际的物理内存
  19. 2017中国之旅系列之十一:山西绵山之旅(上)
  20. linux 退出vi报e37,vim模式下报错E37: No write since last change (add ! to override)

热门文章

  1. ASIHTTPRequest取消异步请求
  2. AutoComplete选择之后,传PK触发动作
  3. python入门教程完整版(懂中文就能学会)-Python入门教程完整版400集(懂中文就能学会)快来带走...
  4. python界面不同按钮实现不同功能-三、PyQt5不同方法创建菜单栏、工具栏和状态栏...
  5. 零基础学python爬虫-零基础如何学爬虫技术?一篇带你入门!(理论+实操+荐书)...
  6. 初学者自学python要看什么书-学习Python可以看书籍学习吗?老男孩Python入门课程...
  7. python菜鸟工具-第一行Python代码之菜鸟逃离记
  8. python基础指令-Python基础——与Python的指令交互
  9. python的优点-Python语言的优势有哪些?
  10. python while循环语句-Python while循环语句