在 PowerPoint 中查找文本并替换为 Excel 中单元格中的文本

jackofalltrades97

我正在尝试使用 Excel 文件中单元格的值查找和替换 PowerPoint 幻灯片中的单词列表。我在 PowerPoint 中运行 VBA,它给出了这个错误。

运行时错误“-2147024809 (80070057)”:指定的值超出范围。

代码似乎停在这一行(第一行):

Set ShpTxt = shp.TextFrame.TextRange

我浏览了其他具有类似目的和错误的帖子,并尝试了大约 20 种不同的组合,来自互联网和我的想法,但没有一个有效。

Sub MergePPT3()

    Dim pp As Object
    Dim pptemplate As Object
    'Dim headerbox As TextRange
    'Dim contextbox As TextRange
    Dim x As Long
    Dim y As Long
    Dim sld As Slide
    Dim shp As Shape
    Dim ShpTxt As TextRange
    Dim TmpTxt As TextRange
    Dim FindList As Variant
    Dim ReplaceList As Variant
    Dim ExApp As Object
    Dim ExInput As Object
    
    Dim SuName As String
    Dim WFWS As String
    Dim WFYOY As String
    Dim CGWS As String
    Dim CGYOY As String
    Dim RNKG As String
    Dim MKTCAT As String
    
    Set ExApp = GetObject(, "Excel.Application")
    ExApp.Visible = True
    Set ExInput = ExApp.Workbooks.Open(ActivePresentation.Path & "/Testing.xlsm")
    
    y = 2
    
    SuName = ExInput.Sheets("SuIDs").Range("B" & y).Value
    WFWS = ExInput.Sheets("SuIDs").Range("C" & y).Value
    WFYOY = ExInput.Sheets("SuIDs").Range("D" & y).Value
    CGWS = ExInput.Sheets("SuIDs").Range("E" & y).Value
    CGYOY = ExInput.Sheets("SuIDs").Range("F" & y).Value
    RNKG = ExInput.Sheets("SuIDs").Range("G" & y).Value
    MKTCAT = ExInput.Sheets("SuIDs").Range("H" & y).Value
    
    FindList = Array("SUNAME", "WFWS", "WFYOY", "CGWS", "CGYOY", "RNKG", "MKTCAT")
    ReplaceList = Array(SuName, WFWS, WFYOY, CGWS, CGYOY, RNKG, MKTCAT)
    
     For Each sld In ActivePresentation.Slides
        
        For Each shp In sld.Shapes
          'Store shape text into a variable
            Set ShpTxt = shp.TextFrame.TextRange
          
          'Ensure There is Text To Search Through
            If ShpTxt <> "" Then
              For x = LBound(FindList) To UBound(FindList)
                
                'Store text into a variable
                 Set ShpTxt = shp.TextFrame.TextRange
                
                'Find First Instance of "Find" word (if exists)
                 Set TmpTxt = ShpTxt.Replace( _
                   FindWhat:=FindList(x), _
                   Replacewhat:=ReplaceList(x), _
                   WholeWords:=True)
            
                'Find Any Additional instances of "Find" word (if exists)
                  Do While Not TmpTxt Is Nothing
                    Set ShpTxt = ShpTxt.Characters(TmpTxt.Start + TmpTxt.Length, ShpTxt.Length)
                    Set TmpTxt = ShpTxt.Replace( _
                     FindWhat:=FindList(x), _
                     Replacewhat:=ReplaceList(x), _
                     WholeWords:=True)
                  Loop
                  
              Next x
              
            End If
            
        Next shp
          
      Next sld
    
    End Sub

我使用变量“y”作为在 Excel 文件中为多行输入循环此代码的可能性。

大本钟

并非所有形状都有TextFrame.

从文档:

HasTextFrame在应用该TextFrame属性之前,请使用该属性确定形状是否包含文本框架

所以尝试:

If shp.HasTextFrame
    Set ShpTxt = shp.TextFrame.TextRange
End If

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

想要在Powerpoint中查找文本并使用VBA在excel中使用单元格中的文本进行替换,但始终会出错

来自分类Dev

将单元格引用转换为Excel中的文本

来自分类Dev

如何在单元格的Excel文本值中查找和替换字符“ *”,而不是公式

来自分类Dev

如何将Powerpoint表格单元格中的格式化文本转换为HTML

来自分类Dev

当单元格处于单独的Excel窗口中的编辑模式时,无法在PowerPoint中添加OLEObject

来自分类Dev

当单元格处于单独的Excel窗口中的编辑模式时,无法在PowerPoint中添加OLEObject

来自分类Dev

Excel-如何使单元格中的文本流到下面的单元格中

来自分类Dev

如何从Excel单元格中删除文本/字符

来自分类Dev

从Excel中的文本单元格提取URL

来自分类Dev

在Excel中读取时间单元格为精确文本

来自分类Dev

如何在Excel中的单元格末尾添加文本

来自分类Dev

在Excel中删除文本单元格值的段

来自分类Dev

如何从Excel单元格中删除文本/字符

来自分类Dev

从Excel中的文本单元格提取URL

来自分类Dev

在Excel单元格中的文本之间添加值

来自分类Dev

Excel:搜索单元格中是否存在多个文本

来自分类Dev

在Excel中包含特定文本的VLOOKUP单元格

来自分类Dev

修改了Excel单元格中的文本?

来自分类Dev

在Excel的文本类型单元格中求和

来自分类Dev

在Excel的文本类型单元格中求和

来自分类Dev

Excel单元格被SQL查询中的大量文本弄乱了

来自分类Dev

(Excel VBA)-从宏中的单元格文本绘制

来自分类Dev

Excel:在单元格中的空格前提取文本

来自分类Dev

无法在 Excel 单元格中输入“空”文本

来自分类Dev

Excel VBA 宏 - 在第一个单元格中查找文本,替换相邻单元格中的值

来自分类Dev

在Excel中,如果相邻单元格为空,我想使单元格的文本消失

来自分类Dev

Excel-将单元格的文本溢出到包含公式的相邻单元格中

来自分类Dev

如何使用python读取excel单元格中的文本并替换为json输出中的其他值?

来自分类Dev

查找其他单元格中存在至少具有相同文本的单元格(Excel)

Related 相关文章

  1. 1

    想要在Powerpoint中查找文本并使用VBA在excel中使用单元格中的文本进行替换,但始终会出错

  2. 2

    将单元格引用转换为Excel中的文本

  3. 3

    如何在单元格的Excel文本值中查找和替换字符“ *”,而不是公式

  4. 4

    如何将Powerpoint表格单元格中的格式化文本转换为HTML

  5. 5

    当单元格处于单独的Excel窗口中的编辑模式时,无法在PowerPoint中添加OLEObject

  6. 6

    当单元格处于单独的Excel窗口中的编辑模式时,无法在PowerPoint中添加OLEObject

  7. 7

    Excel-如何使单元格中的文本流到下面的单元格中

  8. 8

    如何从Excel单元格中删除文本/字符

  9. 9

    从Excel中的文本单元格提取URL

  10. 10

    在Excel中读取时间单元格为精确文本

  11. 11

    如何在Excel中的单元格末尾添加文本

  12. 12

    在Excel中删除文本单元格值的段

  13. 13

    如何从Excel单元格中删除文本/字符

  14. 14

    从Excel中的文本单元格提取URL

  15. 15

    在Excel单元格中的文本之间添加值

  16. 16

    Excel:搜索单元格中是否存在多个文本

  17. 17

    在Excel中包含特定文本的VLOOKUP单元格

  18. 18

    修改了Excel单元格中的文本?

  19. 19

    在Excel的文本类型单元格中求和

  20. 20

    在Excel的文本类型单元格中求和

  21. 21

    Excel单元格被SQL查询中的大量文本弄乱了

  22. 22

    (Excel VBA)-从宏中的单元格文本绘制

  23. 23

    Excel:在单元格中的空格前提取文本

  24. 24

    无法在 Excel 单元格中输入“空”文本

  25. 25

    Excel VBA 宏 - 在第一个单元格中查找文本,替换相邻单元格中的值

  26. 26

    在Excel中,如果相邻单元格为空,我想使单元格的文本消失

  27. 27

    Excel-将单元格的文本溢出到包含公式的相邻单元格中

  28. 28

    如何使用python读取excel单元格中的文本并替换为json输出中的其他值?

  29. 29

    查找其他单元格中存在至少具有相同文本的单元格(Excel)

热门标签

归档