用宏遍历目录下的 xls

今天上班的时候,出现个十分麻烦的任务,要把二百多个表格文件中的部分数据删除。任务很简单,但很麻烦,因为要重复二百多次!所以要想办法自动化!

第一版,简单的宏

对于这样的重复任务,我首先想到的就是宏,试了一下,宏的基础用法非常简单,只要开始录制,操作要重复的动作,然后结束录制,就可以使用了。使用也很简单,打开要操作的文件,运行宏就可以了,可以在菜单栏里手动运行宏,也可以设置快捷键,怕快捷键冲突还可以在菜单栏创建个按钮。

缺点还是很明显的,要手动打开二百多个文件,是很麻烦的,所以要想办法让宏自己运行二百多次。经过谷歌百度的帮助,终于找到了能看懂的,并且能运行的示例。

第二版,遍历目录所有 xls 文件,并执行操作

Sub 循环当前文件夹中所有工作簿()
    f = Dir(ThisWorkbook.Path & "\*.xls") '搜索当前文件夹
    Do While f > " " '只要指定的条件为 True,则会重复执行
        If f <> ThisWorkbook.Name Then '如果不是当前工作簿
            Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & f) '打开工作簿
'执行的内容
                Application.DisplayAlerts = False
                Sheets(Array("主机概况", "漏洞信息", "配置合规信息", "状态合规信息")).Select
                Sheets("状态合规信息").Activate
                ActiveWindow.SelectedSheets.Delete
                Columns("A:A").Select
                Selection.Delete Shift:=xlToLeft
                Rows("1:1").Select
                Selection.Delete Shift:=xlToLeft
'结束
            wb.Close 1 '关闭 Open 语句所打开的输入/输出 (I/O) 文件。
        End If
    f = Dir
    Loop
End Sub

以上就是代码,代码内有注释,说实话现在咱还是没搞清楚是怎么回事,各种函数还是不太清楚具体含义,还要慢慢学习。


发布于 2019-01-23 | 吉ICP备17001717号-1 | © Copyright 2016-2019, Luya Tsai