EXcel VBA:在PowerPoint中创建表格的EXcel宏
我的要求是我有一个Excel,其中包含一些数据。我想从excel中选择一些数据并打开PowerPoint文件 在PowerPoint中创建表格并将数据填入表格中 现在我已经成功地从excel中收集数据,并通过excel VBA代码打开PowerPoint文件 用于从Excel打开PowerPoint的代码EXcel VBA:在PowerPoint中创建表格的EXcel宏,vba,excel,powerpoint,Vba,Excel,Powerpoint,我的要求是我有一个Excel,其中包含一些数据。我想从excel中选择一些数据并打开PowerPoint文件 在PowerPoint中创建表格并将数据填入表格中 现在我已经成功地从excel中收集数据,并通过excel VBA代码打开PowerPoint文件 用于从Excel打开PowerPoint的代码 Set objPPT = CreateObject("Powerpoint.application") objPPT.Visible = True Dim file A
Set objPPT = CreateObject("Powerpoint.application")
objPPT.Visible = True
Dim file As String
file = "C:\Heavyhitters_new.ppt"
Set pptApp = CreateObject("PowerPoint.Application")
Set pptPres = pptApp.Presentations.Open(file)
现在,我如何从Excel在PowerPoint中创建表格并填充数据
非常感谢及时的帮助
提前感谢,这里是来自
此Excel VBA将所选范围从Excel导出到PowerPoint本机表格。它也适用于合并的单元格
Sub Export_Range()
Dim pp As New PowerPoint.Application
Dim ppt As PowerPoint.Presentation
Dim sld As PowerPoint.Slide
Dim shpTable As PowerPoint.Shape
Dim i As Long, j As Long
Dim rng As Excel.Range
Dim sht As Excel.Worksheet
Set rng = Selection
pp.Visible = True
If pp.Presentations.Count = 0 Then
Set ppt = pp.Presentations.Add
Else
Set ppt = pp.ActivePresentation
End If
Set sld = ppt.Slides.Add(1, ppLayoutTitleOnly)
Set shpTable = sld.Shapes.AddTable(rng.Rows.Count, rng.Columns.Count)
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
shpTable.Table.Cell(i, j).Shape.TextFrame.TextRange.Text = _
rng.Cells(i, j).Text
Next
Next
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
If (rng.Cells(i, j).MergeArea.Cells.Count > 1) And _
(rng.Cells(i, j).Text <> "") Then
shpTable.Table.Cell(i, j).Merge _
shpTable.Table.Cell(i + rng.Cells(i, j).MergeArea.Rows.Count - 1, _
j + rng.Cells(i, j).MergeArea.Columns.Count - 1)
End If
Next
Next
sld.Shapes.Title.TextFrame.TextRange.Text = _
rng.Worksheet.Name & " - " & rng.Address
End Sub
子导出_范围()
Dim pp作为新的PowerPoint.Application
将ppt变暗为PowerPoint。演示文稿
将sld设置为PowerPoint幻灯片
将表格设置为PowerPoint.Shape
我和我一样长,我和我一样长
尺寸为Excel.Range
以Excel.工作表的形式显示屏幕
设置rng=选择
pp.可见=真实
如果pp.Presentations.Count=0,则
设置ppt=pp.Presentations.Add
其他的
设置ppt=pp.ActivePresentation
如果结束
设置sld=ppt.Slides.Add(1,pplayouttitlonly)
Set shpTable=sld.Shapes.AddTable(rng.Rows.Count、rng.Columns.Count)
对于i=1到rng.Rows.Count
对于j=1到rng.Columns.Count
shpTable.Table.Cell(i,j).Shape.TextFrame.TextRange.Text=_
rng.单元格(i,j).文本
下一个
下一个
对于i=1到rng.Rows.Count
对于j=1到rng.Columns.Count
If(rng.Cells(i,j).MergeArea.Cells.Count>1)和_
(rng.Cells(i,j).Text“”)则
shpTable.Table.Cell(i,j).合并_
shpTable.Table.Cell(i+rng.Cells(i,j).MergeArea.Rows.Count-1_
j+rng.Cells(i,j).MergeArea.Columns.Count-1)
如果结束
下一个
下一个
sld.Shapes.Title.TextFrame.TextRange.Text=_
rng.Worksheet.Name&“-”和rng.Address
端接头
这在某种程度上也很有用。。。我已经完成了。。非常感谢你的帮助。
Sub Export_Range()
Dim pp As New PowerPoint.Application
Dim ppt As PowerPoint.Presentation
Dim sld As PowerPoint.Slide
Dim shpTable As PowerPoint.Shape
Dim i As Long, j As Long
Dim rng As Excel.Range
Dim sht As Excel.Worksheet
Set rng = Selection
pp.Visible = True
If pp.Presentations.Count = 0 Then
Set ppt = pp.Presentations.Add
Else
Set ppt = pp.ActivePresentation
End If
Set sld = ppt.Slides.Add(1, ppLayoutTitleOnly)
Set shpTable = sld.Shapes.AddTable(rng.Rows.Count, rng.Columns.Count)
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
shpTable.Table.Cell(i, j).Shape.TextFrame.TextRange.Text = _
rng.Cells(i, j).Text
Next
Next
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
If (rng.Cells(i, j).MergeArea.Cells.Count > 1) And _
(rng.Cells(i, j).Text <> "") Then
shpTable.Table.Cell(i, j).Merge _
shpTable.Table.Cell(i + rng.Cells(i, j).MergeArea.Rows.Count - 1, _
j + rng.Cells(i, j).MergeArea.Columns.Count - 1)
End If
Next
Next
sld.Shapes.Title.TextFrame.TextRange.Text = _
rng.Worksheet.Name & " - " & rng.Address
End Sub