You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写for循环遍历workbook1和workbook2中的所有worksheet

遍历两个工作簿所有工作表的循环实现

核心逻辑很简单:把两个工作簿的工作表集合合并到同一个可迭代序列里,就能用单循环覆盖所有目标工作表,不需要写复杂的嵌套判断。下面是几种最常用场景的可直接复用代码:

VBA(Office 宏场景)

如果是在Excel里写宏,两种写法都可以,第一种更直白不容易出问题:

' 写法1:分两段遍历,逻辑最直观
Dim ws As Worksheet
' 遍历第一个工作簿的所有表
For Each ws In Workbooks("workbook1.xlsx").Worksheets
    ' 在这里写每个工作表要执行的操作
    ' 比如取单元格值、调整格式等
Next ws
' 遍历第二个工作簿的所有表
For Each ws In Workbooks("workbook2.xlsx").Worksheets
    ' 复用和上面完全一致的处理逻辑即可
Next ws

如果要严格匹配你写的单循环结构,可以先把所有工作表放进集合再遍历:

' 写法2:单循环结构,和你预期的代码形式完全一致
Dim allSheets As New Collection, ws As Worksheet
For Each ws In Workbooks("workbook1.xlsx").Worksheets
    allSheets.Add ws
Next
For Each ws In Workbooks("workbook2.xlsx").Worksheets
    allSheets.Add ws
Next

For Each ws In allSheets
    ' 统一在这里写处理逻辑
Next

Python openpyxl(本地xlsx文件读写场景)

from openpyxl import load_workbook

# 加载两个目标工作簿
wb1 = load_workbook("workbook1.xlsx", data_only=True)
wb2 = load_workbook("workbook2.xlsx", data_only=True)

# 合并两个工作簿的工作表列表,单循环遍历全部
for ws in [*wb1.worksheets, *wb2.worksheets]:
    # 写你的处理逻辑,ws就是当前遍历到的工作表对象
    print(f"当前表名:{ws.title},所属文件:{ws.parent.filename}")

# 处理完成后关闭文件
wb1.close()
wb2.close()

Python pandas(批量数据处理场景)

如果是做表数据的统计、清洗,用pandas的写法更高效:

import pandas as pd

# 直接遍历两个文件的所有工作表
for file in ["workbook1.xlsx", "workbook2.xlsx"]:
    xls = pd.ExcelFile(file)
    for sheet_name in xls.sheet_names:
        # 读取当前表为DataFrame结构
        df = pd.read_excel(xls, sheet_name=sheet_name)
        # 写数据处理逻辑

注意点:如果两个工作簿里存在同名工作表,处理时不要只用表名做唯一标识,一定要带上所属工作簿的文件名/路径做区分,避免数据覆盖或者逻辑判断错误。

内容的提问来源于stack exchange,提问作者34653120

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:51:18