使用VBA从ppt表格中提取文本并粘贴到excel中
我很难创建一个宏,从每个表中提取数据(文本)并将文本粘贴到excel工作表中,我可以这样做,但我需要在excel电子表格中定位文本ppt中的表格是如何定位的 例如:如果第一个ppt表格的坐标值(左=16,顶部=16),则从第一个表格复制的文本应粘贴到excel中,坐标值与excel中的坐标值相同(左=16,顶部=12) 以下是供参考的图片 这段代码从表中提取并粘贴数据,但它将文本一个接一个地放置在下面,如下所示 这是密码使用VBA从ppt表格中提取文本并粘贴到excel中,excel,vba,Excel,Vba,我很难创建一个宏,从每个表中提取数据(文本)并将文本粘贴到excel工作表中,我可以这样做,但我需要在excel电子表格中定位文本ppt中的表格是如何定位的 例如:如果第一个ppt表格的坐标值(左=16,顶部=16),则从第一个表格复制的文本应粘贴到excel中,坐标值与excel中的坐标值相同(左=16,顶部=12) 以下是供参考的图片 这段代码从表中提取并粘贴数据,但它将文本一个接一个地放置在下面,如下所示 这是密码 选项显式 Sub GetTableNames() End Sub 我可
选项显式
Sub GetTableNames()
End Sub
我可以从ppt中获得表格的坐标值,但我不知道如何使用ppt表格的坐标值,并使用它们在excel中定位文本
我需要帮助
谢谢
Dim pptpres As Presentation
Set pptpres = ActivePresentation
Dim pptSlide As Slide
Set pptSlide = Application.ActiveWindow.View.Slide
Dim pptShapes As Shape, pptTable As Table
Dim XL As Object, WS As Object
Dim arr As Variant, nextTablePlace As Integer, cnt As Integer
Set XL = CreateObject("Excel.Application")
With XL.Workbooks.Add
Set WS = .Worksheets(1)
End With
nextTablePlace = 1 ' to output first table content into Worksheet
For Each pptSlide In pptpres.Slides
For Each pptShapes In pptSlide.Shapes
If pptShapes.HasTable Then
cnt = cnt + 1
Set pptTable = pptShapes.Table
WS.Cells(nextTablePlace, 1) = "Table #: " & cnt ' caption for each table
nextTablePlace = nextTablePlace + 1
ReDim arr(1 To pptTable.Rows.Count, 1 To pptTable.Columns.Count) ' resize array to table dimensions
Dim rr As Integer
Dim cc As Integer
For rr = 1 To pptTable.Rows.Count
For cc = 1 To pptTable.Columns.Count
arr(rr, cc) = pptTable.Cell(rr, cc).Shape.TextFrame.TextRange.Text 'get text from each cell into array
Next
Next
WS.Cells(nextTablePlace, 1).Resize(pptTable.Rows.Count, pptTable.Columns.Count) = arr
' to next place with gap
nextTablePlace = nextTablePlace + pptTable.Rows.Count + 2
End If
Next
Next
XL.Visible = True