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

如何用Excel Power Query统计多个PPT文件的总幻灯片数

用Power Query统计文件夹中PPT文件的总幻灯片数

完全可以实现,通过Power Query结合VBA自定义函数就能提取每个PPT的幻灯片数量,具体操作步骤如下:

1. 获取文件夹内的PPT文件列表

  • 打开Excel,切换到「数据」选项卡,依次点击「获取数据」→「从文件」→「从文件夹」
  • 选择存放PPT的目标文件夹,点击「确定」;在弹出的预览窗口中点击「转换数据」,进入Power Query编辑器

2. 创建自定义Power Query函数提取幻灯片数

  • 在Power Query编辑器中,点击「主页」→「新建源」→「空白查询」,将这个新查询重命名为GetSlideCount
  • 点击「高级编辑器」,替换原有代码为:
(GetFilePath as text) =>
let
    SlideCount = Excel.CurrentWorkbook(){[Name="GetPPTSlideCount"]}[Content]{0}[Column1](GetFilePath)
in
    SlideCount
  • 关闭高级编辑器,回到文件列表的主查询

3. 添加自定义列调用函数

  • 在主查询中,点击「添加列」→「自定义列」,输入公式:
= GetSlideCount([Folder Path] & [Name])
  • 点击「确定」,此时会提示错误,先忽略,接下来编写VBA函数支撑这个调用

4. 编写VBA辅助函数

  • 回到Excel界面,按下Alt+F11打开VBA编辑器
  • 右键点击当前工作簿,选择「插入」→「模块」,在模块中粘贴以下代码:
Function GetPPTSlideCount(filePath As String) As Integer
    Dim pptApp As Object
    Dim pptPres As Object
    
    On Error Resume Next
    ' 后台打开PPT,不显示界面
    Set pptApp = CreateObject("PowerPoint.Application")
    Set pptPres = pptApp.Presentations.Open(filePath, msoFalse, msoFalse, msoFalse)
    
    If Err.Number = 0 Then
        GetPPTSlideCount = pptPres.Slides.Count
        pptPres.Close
    Else
        GetPPTSlideCount = -1 ' 标记无法读取的损坏文件
    End If
    
    ' 清理资源
    pptApp.Quit
    Set pptPres = Nothing
    Set pptApp = Nothing
End Function
  • 保存工作簿为.xlsm格式(因为包含宏)

5. 刷新数据并统计总数

  • 回到Power Query编辑器,点击「主页」→「刷新预览」,此时自定义列会显示每个PPT的幻灯片数量
  • 若有返回-1的行,说明对应文件无法读取,可筛选出来单独检查
  • 点击「关闭并上载」,将数据加载到Excel工作表
  • 最后用SUM函数对幻灯片数字段求和,即可得到总数量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:24:59