哪些实用脚本能简化Excel操作?

wen 实用脚本 2

本文目录导读:

哪些实用脚本能简化Excel操作?

  1. VBA 宏脚本(适合 .xlsm 文件,无需装环境)
  2. Python 脚本(适合自动化、数据分析、跨平台)
  3. 日常高频操作脚本(VBA 极短版)
  4. 如何运行这些脚本?
  5. 安全提示

Excel 的实用脚本主要分为 VBA 宏Python 脚本(通过 openpyxl / pandas 库),以下是能显著简化日常操作的脚本场景及代码示例。


VBA 宏脚本(适合 .xlsm 文件,无需装环境)

一键反合并单元格并填充数据

  • 痛点:合并单元格导致排序、公式失效。
  • 功能:取消合并,自动填充相同值到下方空白单元格。
Sub UnmergeAndFill()
    Dim rng As Range
    For Each rng In ActiveSheet.UsedRange
        If rng.MergeCells Then
            rng.UnMerge
            ' 将合并前的值填充到整个区域
            rng.EntireColumn.SpecialCells(xlBlanks).FormulaR1C1 = rng.Offset(-1, 0)
        End If
    Next
End Sub

快速删除隐藏行/列

  • 痛点:复制粘贴时带入隐藏数据。
  • 功能:仅保留可见单元格。
Sub DeleteHiddenRows()
    Selection.SpecialCells(xlCellTypeVisible).Select
    Selection.Delete Shift:=xlUp
End Sub

批量导出所有工作表为单独 CSV

  • 痛点:逐个另存为费时。
  • 功能:一键生成同名 CSV 文件(与工作簿同目录)。
Sub ExportSheetsToCSV()
    Dim ws As Worksheet
    Dim path As String
    path = ThisWorkbook.path & "\"
    Application.DisplayAlerts = False
    For Each ws In ThisWorkbook.Worksheets
        ws.Copy
        ActiveWorkbook.SaveAs Filename:=path & ws.Name & ".csv", FileFormat:=xlCSV
        ActiveWorkbook.Close False
    Next
    Application.DisplayAlerts = True
End Sub

Python 脚本(适合自动化、数据分析、跨平台)

前提:安装 pip install openpyxl pandas

合并多个 Excel 文件中的相同列

  • 场景:每天收到多份销售报表,需要汇总。
import pandas as pd
import glob
# 读取当前文件夹下所有 .xlsx 文件
files = glob.glob("销售报表_*.xlsx")
df_list = [pd.read_excel(f) for f in files]
combined = pd.concat(df_list, ignore_index=True)
combined.to_excel("汇总报表.xlsx", index=False)

清洗数据:去除空格、空行、重复行

  • 痛点:手工清理不干净且耗时。
import pandas as pd
df = pd.read_excel("原始数据.xlsx")
# 去除首尾空格
df = df.applymap(lambda x: x.strip() if isinstance(x, str) else x)
# 删除完全空的行
df = df.dropna(how='all')
# 删除重复行(保留第一个)
df = df.drop_duplicates()
df.to_excel("清洗后数据.xlsx", index=False)

按条件拆分工作表为多个文件

  • 场景:按“部门”列将一张大表拆成多个 Excel 文件。
import pandas as pd
df = pd.read_excel("员工数据.xlsx")
for dept, group in df.groupby('部门'):
    group.to_excel(f"部门_{dept}.xlsx", index=False)

日常高频操作脚本(VBA 极短版)

操作 VBA 脚本(直接粘贴到模块中运行)
选中区域转置粘贴 Selection.Copy: Range("A1").PasteSpecial Transpose:=True
删除所有图片 ActiveSheet.Pictures.Delete
高亮选中行 Rows(Selection.Row).Interior.Color = RGB(255, 255, 0)
快速设置打印区域 ActiveSheet.PageSetup.PrintArea = Selection.Address

如何运行这些脚本?

  1. VBA 宏:按 Alt + F11 打开编辑器 → 插入模块 → 粘贴代码 → 关闭 → Alt + F8 选择宏运行。
  2. Python 脚本:保存为 .py 文件,在命令行或 PyCharm 执行。python 脚本名.py

安全提示

  • 运行来自网络的 VBA 脚本前,请确认其功能是否安全(可通过注释 .Delete 等危险命令测试)。
  • Python 脚本建议在虚拟环境中运行,避免影响系统 Python。

如果需要针对特定业务场景(比如发票核对、考勤统计)的脚本,可以告诉我具体需求,我来帮你定制。

抱歉,评论功能暂时关闭!