我有以下代码块,它循环访问工作簿中的表名数组。它是来自调用过程(回调)的ParamArray。它复制每个表格并将其粘贴到ppt幻灯片。然后创建一个textbox,这是表的标题。我使用目标样式(我认为这是默认样式)粘贴它,因为我想使用ppt样式。我从Excel粘贴的对象是一个表。如何在粘贴后更改表格的样式并将第一行设置为粗体?更改PowerPoint表格样式似乎没有很好的文档记录。我尝试了下面的评论部分,但它不起作用。谢谢!
For i = LBound(vObjects(0)) To UBound(vObjects(0))
Set practice = ActiveWorkbook.Worksheets(Range("T_" & vObjects(0)(i)).Parent.Name).ListObjects("T_" & vObjects(0)(i))
practice.Range.Copy
PPT_Slide.Shapes.Paste 'Special DataType:=ppPasteOLEObject, Link:=msoTrue
Set PPT_Shape = PPT_Slide.Shapes(PPT_Slide.Shapes.Count)
PPT_Shape.Name = "OBJ_" & vObjects(0)(i)
' With PPT_Shape
' .ApplyStyle "{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}", True
' .Rows(1).Font.Bold = True
' End With
Set objPPT_MilestoneTextbox = PPT_Slide.Shapes.AddTextbox(1, Left:=320, Top:=HorizontalTop, Width:=300, Height:=50).TextFrame.TextRange
With objPPT_MilestoneTextbox
.Text = vObjects(0)(i)
.Font.Size = 14
.Font.Bold = True
.ParagraphFormat.Alignment = 2
End With
Set PPT_Shape = PPT_Slide.Shapes(PPT_Slide.Shapes.Count)
PPT_Shape.Name = "CAP_" & vObjects(0)(i)
Next i
Application.CutCopyMode = False发布于 2017-03-16 23:22:48
此MS页面记录了PPT 2010的表格样式ids (并指出它们在后续版本中可能不同):
https://code.msdn.microsoft.com/office/PowerPoint-2010-Interact-ea2fbe1b
但是您需要将样式应用于形状的.Table对象,而不是形状本身。试着这样修改你的代码:
Dim otbl As Table
Set PPT_Shape = PPT_Slide.Shapes(PPT_Slide.Shapes.Count)
Set otbl = PPT_Shape.Table
With otbl
.ApplyStyle "{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}", True
End Withhttps://stackoverflow.com/questions/42834347
复制相似问题