如何通过命令提示符使用VBS格式化现有XLSX文件?
适配现有XLSX文件的格式化VBS脚本
使用说明
- 将以下代码保存为
format_excel.vbs文件 - 打开命令提示符,执行以下命令即可完成格式化:
cscript format_excel.vbs "C:\path\to\your\target.xlsx" - 脚本默认处理文件的第一个工作表,如有多工作表需求可自行修改代码中
Sheet = 1的数值
完整代码
' 绑定Excel对象 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = False ' 后台运行不弹出Excel窗口 objExcel.DisplayAlerts = False ' 关闭弹窗提示 ' 从命令行参数获取待处理的现有XLSX文件路径 strExcelPath = WScript.Arguments(0) ' 打开现有工作簿,而非新建 Set objWorkbook = objExcel.Workbooks.Open(strExcelPath) ' 选择要处理的工作表,1代表第一个工作表 Sheet = 1 Set objSheet = objWorkbook.Worksheets(Sheet) ' 获取工作表已使用的单元格区域 Set usedRange = objSheet.UsedRange rowCount = usedRange.Rows.Count colCount = usedRange.Columns.Count ' ---------------------- ' 格式化逻辑 ' ---------------------- ' 1. 首行表头加粗 objSheet.Rows(1).Font.Bold = True ' 2. 所有列自动调整宽度 For i = 1 To colCount objSheet.Columns(i).AutoFit() Next ' 3. 实现数据行交替背景色,这里ColorIndex=15是浅灰色,可自行修改 For row = 2 To rowCount If row Mod 2 = 0 Then objSheet.Rows(row).Interior.ColorIndex = 15 ' 偶数行设置浅灰背景 Else objSheet.Rows(row).Interior.ColorIndex = 0 ' 奇数行保持默认白色 End If Next ' ---------------------- ' 保存退出 ' ---------------------- objWorkbook.Save objWorkbook.Close objExcel.Application.Quit ' 释放对象 Set usedRange = Nothing Set objSheet = Nothing Set objWorkbook = Nothing Set objExcel = Nothing
可自定义调整项
- 交替背景色:修改
Interior.ColorIndex后的数值即可,常用色值参考:36浅黄、34浅绿、37浅蓝 - 固定列宽:如果不需要全列自动适配,可将对应列的
AutoFit()替换为ColumnWidth = 自定义宽度数值 - 处理指定工作表:修改
Sheet = 1的数值即可切换要处理的工作表序号
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

