VBA 代码,用于将文件夹中的 Excel 个文件转换(或复制)到相应的 PowerPoint 演示文稿中

VBA code to convert (or make duplicate of) Excel files in a folder into respective PowerPoint presentations

我是 Excel 的新手,我正在尝试编写一个宏来将多个 Excel 电子表格转换为多个 PowerPoint 幻灯片。到目前为止,我已经找到了一种方法,可以从网站上的 Excel 个工作表制作单独的幻灯片:

Option Explicit
Sub ExcelRangeToPowerPoint()

Dim rng As Excel.Range
Dim PowerPointApp As PowerPoint.Application
Dim myPresentation As PowerPoint.Presentation
Dim mySlide As PowerPoint.Slide
Dim myShapeRange As PowerPoint.Shape

'Copy Range from Excel
  Set rng = ThisWorkbook.ActiveSheet.Range("A1:G17")

'Create an Instance of PowerPoint
  On Error Resume Next

    'Is PowerPoint already opened?
      Set PowerPointApp = GetObject(class:="PowerPoint.Application")

    'Clear the error between errors
      Err.Clear

    'If PowerPoint is not already open then open PowerPoint
      If PowerPointApp Is Nothing Then Set PowerPointApp = CreateObject(class:="PowerPoint.Application")

    'Handle if the PowerPoint Application is not found
      If Err.Number = 429 Then
        MsgBox "PowerPoint could not be found, aborting."
        Exit Sub
      End If

  On Error GoTo 0

'Make PowerPoint Visible and Active
  PowerPointApp.Visible = True
  PowerPointApp.Activate

'Create a New Presentation
  Set myPresentation = PowerPointApp.Presentations.Add

'Add a slide to the Presentation
  Set mySlide = myPresentation.Slides.Add(1, ppLayoutTitleOnly)

'Copy Excel Range
  rng.Copy

'Paste to PowerPoint and position
  mySlide.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile
  Set myShapeRange = mySlide.Shapes(mySlide.Shapes.Count)

    'Set position:
      myShapeRange.Left = 150
      myShapeRange.Top = 186

'Clear The Clipboard
  Application.CutCopyMode = False

End Sub

我只是想弄清楚,是否有一个宏可以循环遍历给定的 folder/directory 并将所有 Excel 文件转换为 PowerPoint 演示文稿?

你看懂代码了吗?它将从单个单元格范围创建单个 powerpoint 幻灯片。如果您的工作簿文件有很多 sheet 怎么办?如果每个 sheet.

的范围都不同怎么办?

您的代码需要适应这一点。

所以你会编写

  1. 遍历在文件夹中找到的每个 excel 文件
  2. 循环遍历文件
  3. 中的每个 sheet
  4. 为当前 sheet
  5. 的一个 powerpoint 文件添加一张新幻灯片
  6. 查找当前 sheet 的范围并将该范围添加到幻灯片

你是不是迫不及待地想把它自动化?如果您只需要执行一次,您最好手动执行此操作?当然,这取决于文件的数量和执行频率。

要回答您的问题,请参阅 here,它使用 dir 来查找文件夹中的文件。但是需要更多的代码才能做到这一点!

可能有一个工具可以在网络上执行此操作...例如here我没有起诉它,但这是一个普遍的需求。