将Excel数据导入PowerPoint幻灯片


5

我已经找到了一些有用的网站,但我仍然无法做我想做的事情。我的Excel文件包含少量列和多行。来自一行的所有数据将在一个幻灯片中,但来自该行中的不同单元格的数据应该转到PP幻灯片中的特定元素。首先,是否可以将数据从Excel单元格导出到PP中的特定文本框?例如,我想让每行第一列的所有数据都转到文本框1.假设我有100行,所以我将有100张幻灯片,每张幻灯片都有正确数据的文本弓1。幻灯片66的文本框将具有来自行66的第一列的数据。然后来自每行的第二列的所有数据将转到文本弓2,依此类推。

我尝试做了一些非常成功的宏。我也尝试使用Word轮廓并将它们导出到PP(新幻灯片 - >幻灯片中的幻灯片),但似乎有一个错误,因为我有250页的乱码。我只有两段,都有一个字。第一段使用了标题1样式,第二段使用了普通样式。

我找到的网站,使用VB和/或其他一些编程语言从Excel工作表创建幻灯片。我试图将这些VB代码添加到我的宏中,但到目前为止它们都没有工作。可能我只是不知道如何正确使用它们:)这里有一些有用的网站:

VBA:为Excel工作簿中的每一行创建PowerPoint幻灯片

基于数据创建演示报告

Stackoverflow中的问题

我在Mac上使用Office 2011。任何帮助,将不胜感激!


第一个链接将为您完成大部分工作,但不是将第一行中的文本粘贴到幻灯片上的第一个文本框中,而是可以逐步浏览幻灯片上的每个形状,然后查找文本,例如“第1列“,并将其替换为第一行第1列中单元格中的文本。
Steve Rindsberg 2011年

我尝试运行宏时出错。错误在线:“设置OWB = Excel.Application.Workbooks.Open(”C:\ list.xlsx“)”。我已经改为文件路径,但PP一直说“ActiveX组件不能创建对象”。可能是什么问题呢?
nqw1 2011年

您是否在VB编辑器中添加了对Excel VBA库的引用(通过工具>参考)?您是否在代码中创建了Excel实例?[例如,Dim appXL as Excel.Application然后设置appXL = CreateObject(“Excel.Application”)或Set appXL = GetObject(,“Excel.Application”)]
变种

我正在遵循这些说明:craig-tolley.co.uk/2011/06/08 / ...并且我还添加了该参考。我不知道如何修改指令中的代码与你给出的代码或者说明中的代码已经足够了
nqw1 2011年

试试www.pptxbuilder.com
Boosted_d16

Answers:


2

尝试这样的事情。我做了一些mods,以便用幻灯片中的值替换幻灯片上的文本@ COL1 @的任何实例。未经考验的aircode,请注意。

Sub CreateSlides()
'Open the Excel workbook. Change the filename here.
Dim OWB As New Excel.Workbook
Set OWB = Excel.Application.Workbooks.Open("C:\list.xlsx")
'Grab the first Worksheet in the Workbook
Dim WS As Excel.Worksheet
Dim sCurrentText As String
Dim oSl As Slide
Dim oSh As Shape
Set WS = OWB.Worksheets(1)
Dim i As Long
'Loop through each used row in Column A
For i = 1 To WS.Range("A65536").End(xlUp).Row
    'Copy the first slide and paste at the end of the presentation
    ActivePresentation.Slides(1).Copy
    Set oSl = ActivePresentation.Slides.Paste(ActivePresentation.Slides.Count + 1)
    sCurrentText = WS.Cells(i, 1).Value

    ' find each shape with "@COL1@" in text, replace it with value from worksheet
    For Each oSh In oSl.Shapes
      ' Make sure the shape can hold text and if is, that it IS holding text
      If oSh.HasTextFrame Then
        If oSh.TextFrame.HasText Then
          ' it's got text, do the replace
          With oSh.TextFrame.TextRange
            .Replace "@COL1@", sCurrentText
          End With
        End If
      End If
    Next
Next
End Sub

谢谢你的帮助!我仍然得到同样的错误:/当我尝试运行宏时出现错误。错误在线:“设置OWB = Excel.Application.Workbooks.Open(”C:\ list.xlsx“)”。我已经更改了文件路径,但PP一直说“错误429:ActiveX组件无法创建对象”。我不知道我做错了什么:/
nqw1 2011年

我担心“我做错了什么”的答案可能是“你正在使用Mac”。据我所知,OSX / Office下不支持ActiveX对象。有一个非常聪明的人,一个Excel专家Ron DeBruin,他刚刚爱上了他的新Mac并正在探索Mac / PC VBA不兼容性。他张贴了他的发现,他去: rondebruin.nl/mac.htm 如果你没有找到一个答案,你可能想看看他,在Mac的办公区answers.microsoft.com
史蒂夫Rindsberg

我对该解决方案进行了一些扩展 - 当然这也归功于我从中获取问题的解决方案。locutus-one.blogspot.de/2012/08 / ...

2

PowerPoint加载项Excel导入可以将Excel数据导入PowerPoint

它能做什么

  • 将Excel数据导入打开的演示文稿
    方法:每个PowerPoint幻灯片一个Excel行,当前幻灯片上每个文本字段一个单元格
  • 如果存在多个工作表,可以选择Excel工作表来获取数据
  • 如果您的Excel文件的行数多于Powerpoint中的幻灯片,则可以自动添加幻灯片
  • 如果没有足够的文本字段(形状)来包含行中的所有数据,则会发出警告
  • 适用于每个Microsoft Office版本

如何使用

  • 下载加载项
  • 将其保存在Micorsoft Office加载项文件夹中
    提示:按Win+ R并键入%AppData%\ Roaming \ Microsoft \ AddIns
  • 打开PowerPoint并启用加载项
    • Excel 2003:菜单栏→工具→加载项
    • Excel 2007:开始按钮→Excel选项→加载项→下拉列表:Excel加载项→转到
    • Excel 2010:“文件”选项卡→“选项”→“加载项”→“下拉列表”:Excel加载项→“转到”
  • 将弹出一个新的菜单栏条目
    在此输入图像描述
  • 新的“ 导入Excel数据”按钮将弹出“文件”对话框以选择Excel文件。
    如果您有足够的文本字段,则加载项将填充它们

查看这个简短的imgur专辑来说明插件


注意: 如果要自定义代码,则必须添加注册表项以查看加载项代码。
可以在pastebin查看源代码


0

PPTools不适用于64位,现在是标准的。

PowerPoint将打开Word文档。Word将打开HTML。

  1. 在Excel中,在左侧插入一列。
  2. 将HTML标记<h1>放在该列的每个单元格中。
  3. 在最右边的一列中,将html标记</ h1>放在每个单元格中。
  4. 将整个工作表复制/粘贴到记事本中。
  5. 在顶部添加这些标记:<html> <body>
  6. 在底部添加这些标记:</ body> </ html>
  7. 用任何东西搜索/替换所有标签,以便摆脱它们。
  8. 保存为something.html。现在关闭它。
  9. 在Word中打开它。
  10. 保存为something.docx
  11. 现在关闭它。
  12. 在PowerPoint中打开something.docx(选择“所有文件”而不是“* .pptx”)。
  13. PowerPoint应该现在导入完整的内容,每行作为幻灯片。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.