ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1474|回复: 15

[求助] 这个遍历文件夹 代码是我搜的。 放在我这个代码里用不起来

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-11-22 02:30 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 wdh540119878 于 2022-11-22 10:38 编辑

这个遍历文件夹 代码是我搜的。 放在我这个代码里用不起来



Sub 打开文件夹内所有Excel表格并修改() '打开文件夹内所有Excel表格并修改
'
'
'
    Dim myPath$, myFile$, WB As Workbook '这个$是相当于定义字符串
   
    myPath = "F:\批量修改\修改\"    '把文件路径定义给变量,这里请自行更改,记得最后要加一个反斜杠
   
    myFile = Dir(myPath & "*.xls*")  '依次找寻指定路径中的*.x1s,或者x1sx文件
      
    Do While myFile <> ""   '当指定路径中有文件时进行循环
           
          If myFile <> ThisWorkbook.Name Then   '如果我们这个宏文件在需要处理的文件夹之中,这个判断就会跳过下面的操作
         
          Set WB = Workbooks.Open(myPath & myFile) '打开符合要求的文件

         
  Rows("2:2").Select '第二行上方插入2行
    With Rows("2:3")
        .Insert Shift:=xlShiftDown
        .Select

ActiveSheet.Columns("F").Insert  '插入列
ActiveSheet.Columns("C").Insert
   
    Range("A2:B2 ").MergeCells = True                                          '合并A2-B2
    Range("A3:B3 ").MergeCells = True                                          '合并A3-B3
    Range("D2:G2 ").MergeCells = True                                          '合并D2-G2
    Range("D3:G3 ").MergeCells = True                                          '合并D3-G3
    Range("H2:I2 ").MergeCells = True                                          '合并D2-G2
    Range("H3:I3 ").MergeCells = True                                          '合并D3-G3
   
   
    Range("A2:B2").Select
    ActiveCell.FormulaR1C1 = "类别"                                   'A2单元格内容
   
    Range("C2").Select                                          'C2单元格内容
    ActiveCell.FormulaR1C1 = "卷号"
   
    Range("D2:G2").Select
    ActiveCell.FormulaR1C1 = "案卷题名"                                   'A2单元格内容
   
    Range("H2:I2").Select
    ActiveCell.FormulaR1C1 = "保管期限"                                   'A2单元格内容
   
    Range("A4").Select
    ActiveCell.FormulaR1C1 = "序号"
   
    Range("B4:C4").Select
    ActiveCell.FormulaR1C1 = "责任者"
   
    Range("D4").Select
    ActiveCell.FormulaR1C1 = "文件号"
   
    Range("E4").Select
    ActiveCell.FormulaR1C1 = "文件题名"
   
    Range("F4").Select
    ActiveCell.FormulaR1C1 = "文件日期"
   
    Range("G4").Select
    ActiveCell.FormulaR1C1 = "何种文字"
   
    Range("H4").Select
    ActiveCell.FormulaR1C1 = "所在页码"
   
    Range("I4").Select
    ActiveCell.FormulaR1C1 = "备注"
   
    Rows("1:65535").Select           '所有单元格改文本格式
Selection.NumberFormatLocal = "@"

Range([A2], [I4]).Borders.Weight = 2   'A2-I4加边框,1为虚线,0为无边框

   
Rows("1:1").Select              '1行字体字号
    With Selection.Font
        .Name = "宋体"
        .Size = 20
     End With
     
Rows("2:4").Select               '3行字体字号
    With Selection.Font
        .Name = "宋体"
        .Size = 11
    End With
        
   myendrow = Cells(6500, 1).End(xlUp).Row    '4-1200行字体字号
    Rows("5:" & 1200).Select
    With Selection.Font
        .Name = "宋体"
        .Size = 10
    End With

  .Columns("A:A").ColumnWidth = 3        '列宽Columns('A:A' ). ColumnWidth = 15
  .Columns("B:B").ColumnWidth = 5
  .Columns("C:C").ColumnWidth = 5
  .Columns("D:D").ColumnWidth = 8.5
  .Columns("E:E").ColumnWidth = 31.5
  .Columns("F:F").ColumnWidth = 9
  .Columns("G:G").ColumnWidth = 5
  .Columns("H:H").ColumnWidth = 4.5
  .Columns("I:I").ColumnWidth = 3.5
  
Rows("1:1").RowHeight = 25.5     '行高Rows(' 1:5' ). RowHeight = 15
Rows("2:2").RowHeight = 35.1
Rows("3:3").RowHeight = 65.1
Rows("4:4").RowHeight = 45.95
   
    Range("B4:C4 ").MergeCells = True                                          '合并B5-C5
    Range("B5:C5 ").MergeCells = True                                          '合并B5-C5
   
    If Range("A65536").End(xlUp).Row > 6 Then                        '复制5-6
Rows("5:5").Copy
Rows("6:" & Range("A65536").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteFormats       '选择剩余有内容的粘贴格式
   
    Application.CutCopyMode = False

    ActiveWorkbook.Save 保存修改
WB.Close 1 '保存文件直接关闭
         
        End If
        myFile = Dir '找寻下一个*.xls,或者xlsx文件

      Loop
         Set WB = Nothing   '释放变量内存
         

End Sub




红色部分是 遍历的代码,黑色部分是,我自己的代码,第一次运行提示
QQ截图20221122021655.jpg
我把保存的这条删了 在运行 又提示这个
微信截图_20221122021710.jpg
我又加了DO,还是不行。又提示这个。。我小白。实在没办法了
微信截图_202211220217142.jpg
有大神么。帮我看一下。
附件是我要修改的文件



2022-11-22  10:35
附件1  是遍历VB
附件2  是我原来的VB
7        是要处理的文件
压缩.zip (179.72 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

发表于 2022-11-22 07:54 | 显示全部楼层
建议楼主根据提示查下具体语句的用法,然后看看是否有缺失
可以按f1查帮助
或者这接搜索while语句看看用法

TA的精华主题

TA的得分主题

发表于 2022-11-22 08:18 | 显示全部楼层
你在中间插入代码时,把循环的对应结构都破坏了,执行肯定提示有错误了

TA的精华主题

TA的得分主题

发表于 2022-11-22 08:25 | 显示全部楼层
你这个还是分2块发出来求助吧,原有的宏,你自己的宏,想加入的位置

TA的精华主题

TA的得分主题

发表于 2022-11-22 08:27 | 显示全部楼层
和loop无关,是with 和if 不成对儿,仔细找找看,另外还有其他错误,比如这里
图片.png 图片.png

TA的精华主题

TA的得分主题

发表于 2022-11-22 09:13 | 显示全部楼层
快速浏览了一下你的代码,好多好多错误,无从下手

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-22 10:38 | 显示全部楼层
liulang0808 发表于 2022-11-22 07:54
建议楼主根据提示查下具体语句的用法,然后看看是否有缺失
可以按f1查帮助
或者这接搜索while语句看看用 ...

我试了一下,,超出我得理解能力了。不知道怎么查、、真的小白

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-22 10:39 | 显示全部楼层
wengjl 发表于 2022-11-22 08:18
你在中间插入代码时,把循环的对应结构都破坏了,执行肯定提示有错误了

可以帮我看一下不,我不知道哪里错了。,

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-22 10:45 | 显示全部楼层
于箱长 发表于 2022-11-22 08:27
和loop无关,是with 和if 不成对儿,仔细找找看,另外还有其他错误,比如这里

微信截图_20221122104401.jpg
咋跟你看的不太一样呢。。,您看一下,我又重新上传了附件

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-22 10:45 | 显示全部楼层
凤随心动 发表于 2022-11-22 08:25
你这个还是分2块发出来求助吧,原有的宏,你自己的宏,想加入的位置

嗯嗯 我已经分成两个VB了  重新上传了 附件,麻烦您帮我看一下
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-20 22:35 , Processed in 0.045308 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表