在Excel中设置PowerPoint中的表格样式 – 2013

我有以下代码块循环通过工作簿中的表名称数组。 它是一个来自调用过程(callback)的ParamArray。 它复制每个表并将其粘贴到PPT幻灯片。 然后它创build一个文本框,这是表格的标题。 我正在使用目标样式(我认为是默认)粘贴它,因为我想使用PPT样式。 我从Excel粘贴的对象是一个表格。 粘贴后如何改变表格的样式,使第一行加粗? 更改PowerPoint表格样式似乎没有很好的logging。 我尝试了下面的评论部分,但没有奏效。 谢谢!

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 

此MS页面logging了PPT 2010的表格样式ID(并指出它们可能与后续版本不一样):

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 With