Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1057|回复: 1

求助大神,帮忙优化一下代码。万分感谢

[复制链接]
发表于 2022-5-19 13:17 | 显示全部楼层 |阅读模式
Sub 文件列表()
    Dim Fso As Object, File As Object
    Set D = CreateObject("scripting.dictionary")
    Set Fso = CreateObject("Scripting.FileSystemObject")
    For Each File In Fso.GetFolder("E:\批量打印区域").Files
        If File.Name Like "*.*xls*" Then D(File.Name) = ""
    Next
    Range("A1").Resize(D.Count, 1) = WorksheetFunction.Transpose(D.Keys)
Application.ScreenUpdating = True
End Sub
Sub 批量设置打印区域()
Application.ScreenUpdating = False
    Dim Fso As Object, File As Object
    Set D = CreateObject("scripting.dictionary")
    Set Fso = CreateObject("Scripting.FileSystemObject")
    For Each File In Fso.GetFolder("E:\批量打印区域").Files
        If File.Name Like "*.*xls*" Then
            Workbooks.Open Filename:="E:\批量打印区域\" & File.Name
            ActiveWorkbook.Worksheets("表1").PageSetup.PrintArea = "$A$1:$C$1" '设置打印区域
            '表3可以自行添加,跟上面一句一样的方法
            ActiveWorkbook.Close savechanges:=True               '关闭工作薄,并保存修改
        End If
    Next
Application.ScreenUpdating = True
End Sub


每次更改都得编辑,想弄成在表格里更改的,谢谢了。

dd13e8dd59178e0cd5b0d418b78940f.png

批量打印区域.zip

36.5 KB, 下载次数: 5

发表于 2022-5-19 15:08 | 显示全部楼层
本帖最后由 roserice 于 2022-5-19 16:24 编辑

不需要高大上的字典
Sub 文件列表()    Dim Fso As Object, File As Object
    Set Fso = CreateObject("Scripting.FileSystemObject")
    For Each File In Fso.GetFolder("E:\批量打印区域").Files
        If File.Name Like "*.*xls*" Then
        i = i + 1
        Range("a" & i) = File.Name
        End If
    Next
Application.ScreenUpdating = True
End Sub
Sub 批量设置打印区域()
Application.ScreenUpdating = False
    Dim Fso As Object, File As Object
    Set Fso = CreateObject("Scripting.FileSystemObject")
    For Each File In Fso.GetFolder("E:\批量打印区域").Files

        If File.Name <> "批量打印区域.xlsm" Then
            Workbooks.Open Filename:="E:\批量打印区域\" & File.Name
            ActiveWorkbook.Worksheets("表1").PageSetup.PrintArea = "$A$1:$C$1" '设置打印区域
            '表3可以自行添加,跟上面一句一样的方法
            ActiveWorkbook.Close savechanges:=True               '关闭工作薄,并保存修改
        End If
    Next
Application.ScreenUpdating = True
End Sub




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 12:55 , Processed in 0.976400 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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