【发布时间】:2016-05-12 04:50:20
【问题描述】:
我有一个基本的TableStyle 布局如下:
Sub NewTableStyle()
Dim StyTbl As Style
Set StyTbl = ActiveDocument.Styles.Add(Name:="PhaseTable", Type:=wdStyleTypeTable)
With StyTbl.Table
.Alignment = wdAlignRowLeft
With .Condition(wdFirstRow)
With .Borders(wdBorderBottom)
.LineStyle = wdLineStyleSingle
.Visible = True
.LineWidth = wdLineWidth150pt
End With
With .Borders(wdBorderTop)
.LineStyle = wdLineStyleSingle
.Visible = True
.LineWidth = wdLineWidth150pt
End With
End With
End With
End Sub
但我想扩展它,将以下内容应用于所有单元格:
- 字体:“Times New Roman”,12 号。
- 垂直对齐:中间
...仅第一行以下内容:
- 粗体
我想我可以添加如下内容:
With StyTbl.Font
.Size = 12
.Name = "Times New Roman"
End With
在我的子程序结束时将以下属性应用于整个表。但是,我似乎无法弄清楚选择性的第一行粗体或垂直对齐方式。
我知道这可能是可能的,因为我可以修改 Excel 默认样式以在 GUI 中包含这些选项。如何在我计划应用于表格的 VBA Style 中设置这些选项?
【问题讨论】:
-
如果你想将样式应用到第一行,只需在
With .Condition(wdFirstRow) ... End With块内进行。 -
对,我上面的例子使用了这个......问题是我没有看到任何
StyTbl.Table.Condition(wdFirstRow)的成员导致.Font.bold。你知道如何调用它来到达.Font吗?或者你是说也许我不需要?你是在建议我做类似的事情:StyTbl.Table.Condition(wdFirstRow) StyTable.Font.Bold = True End With?现在试试…… -
编辑:如果我设置
StyTbl.Table.Condition(wdFirstRow) StyTable.Font.Bold = True End With,则将粗体应用于整个表格,而不仅仅是第一行。但是,如果我设置StyTbl.Table.Condition(wdFirstRow).Font.Bold = True确实有效...您可以将其作为解决方案发布吗?出于某种原因,StyTbl.Table.Condition(wdFirstRow)最初并未显示其成员,所以我错过了一些明显的修复。
标签: vba formatting ms-word