Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
粘贴到powerpoint VBA时覆盖_Vba_Powerpoint - Fatal编程技术网

粘贴到powerpoint VBA时覆盖

粘贴到powerpoint VBA时覆盖,vba,powerpoint,Vba,Powerpoint,如果我的powerpoint中有文本(形状)。如何修改代码以不创建新形状,而是覆盖其中的值 下面的代码将创建一个新形状。 有什么想法吗 Private Sub test() Dim xlApp As Object Dim xlWorkBook As Object Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False Set xlWorkBook = xlApp.Workbooks.Open("D:\ELE_pow

如果我的powerpoint中有文本(形状)。如何修改代码以不创建新形状,而是覆盖其中的值

下面的代码将创建一个新形状。 有什么想法吗

Private Sub test()
Dim xlApp As Object
Dim xlWorkBook As Object

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlWorkBook = xlApp.Workbooks.Open("D:\ELE_powerpoint\book1.xlsx", True, False)

With xlWorkBook.ActiveSheet
xlWorkBook.sheets(1).Range("A2").Copy
End With

ActivePresentation.Slides(1).Shapes.Paste.Select

Set xlApp = Nothing
Set xlWorkBook = Nothing


End Sub

让我们使用变量,而不是像这样复制和粘贴

mytext = xlWorkBook.sheets(1).Range("A2")
ActivePresentation.Slides(1).Shapes("Shape name").TextFrame.Characters.Text = myText
然后可以像这样设置形状的文本值

mytext = xlWorkBook.sheets(1).Range("A2")
ActivePresentation.Slides(1).Shapes("Shape name").TextFrame.Characters.Text = myText

阅读如何在此处设置形状名称:

您需要找到要粘贴到的形状的索引。假设它是索引2

然后使用

ActivePresentation.Slides(1).Shapes(2).TextFrame.TextRange.Paste

使用变量而不是复制/粘贴可能是最好的方法+1.