上次节课我们简单介绍了下DOS批处理。我们学习DOS批处理是为了实现更高效更智能的办公。今天我们来看看如何利用DOS批处理结合EXCEL来实现高效办公吧。
01我们来看个简单的例子:
任务要求:
将c:\tmp\data.txt打开、分列处理。筛选出零库存。另存为0库存报表.xlsx在d:\data\temp\创建以当前日期使命的文件夹将生成的0库存报表.xlsx移动到d:\data\temp\当前日期文件夹
02本例实现步骤:
在C:\tmp\创建文本文件——生成0库存报表.txt
编写如下批处理脚本代码:
echooffcd\
c:
cdC:\tmp’将当前目录设置在C:\tmp
start生成0库存报表.xlsm’运行代VBA脚本可生成0库存报表的程序文档。
mdd:\data\%date:~0,4%%date:~5,2%%date:~8,2%‘在d:\data下创建以当天日期命名的文件夹。
move0库存报表.xlsxd:\data\%date:~0,4%%date:~5,2%%date:~8,2%’将生成的最终报表——0库存报表.xlsx移动到d:\data\当天日期命名的文件夹
startd:\data\%date:~0,4%%date:~5,2%%date:~8,2%打开d:\data\当天日期命名的文件夹。
echoon如图:
将生成0库存报表.txt扩展名改为.cmd或.bat,本例改为:生成0库存报表.cmd
03生成0库存报表的VBA程序文档
新建生成0库存报表.xlsx
按ALT+F11,进入VBE编程环境,编写如下VBA代码:
Subauto_open()
Application.DisplayAlerts=False
Workbooks.OpenTextFilename:=C:\tmp\data.txt,Origin:=,tartRow:=1,DataType:=xlDelimited,TextQualifier:=xlDoubleQuote,ConsecutiveDelimiter:=False,Tab:=True,Semicolon:=False,Comma:=True,Space:=False,Other:=False,FieldInfo:=Array(Array(1,1),Array(2,1),Array(3,1),Array(4,1),Array(5,1),Array(6,1),Array(7,1),Array(8,1)),TrailingMinusNumbers:=True用EXCEL打开文本文件data.txt并分列。Cells.Select全选
Selection.AutoFilter
ActiveSheet.Range($A$1:$H$).AutoFilterField:=7,Criteria1:==0,Operator:=xlAnd筛选库存为0的列表。
Cells.Select全选
Selection.Copy复制
Workbooks.Add新建文档
Range(a1).Select
Selection.PasteSpecialPaste:=xlPasteValues,Operation:=xlNone,SkipBlanks:=False,Transpose:=False粘贴
Application.CutCopyMode=False
ActiveWorkbook.SaveAsFilename:=C:\tmp\0库存报表.xlsx,FileFormat:=xlOpenXMLWorkbook,CreateBackup:=False另存出0库存报表
Workbooks(0库存报表.xlsx).Close关闭另存出0库存报表
ActiveWorkbook.Close关闭当前工作表
ActiveWorkbook.Close关闭当前工作表
Application.DisplayAlerts=True
EndSub
如下图所示:
04
将生成0库存报表.xlsx另存为:生成0库存报表.xlsm。
在excel文件-选项-信任中心-宏设置-启用所有宏
如下图所示:
至此就完成了本例的制作。
鼠标双击生成0库存报表.cmd即可实现
将c:\tmp\data.txt打开、分列处理。筛选出零库存。另存为0库存报表.xlsx在d:\data\temp\创建以当前日期使命的文件夹将生成的0库存报表.xlsx移动到d:\data\temp\当前日期文件夹
05思路
本例是利用DOS批处理调用包含宏或VBA代码的EXCEL文档实现高效办公。此方法是比较常见实用的方案希望对大家提高工作效率有所启发和帮助。
喜欢我的文章请