【问题标题】:Excel VBA Centering contents in a Word Document tableExcel VBA 将 Word 文档表格中的内容居中
【发布时间】:2021-05-24 22:07:39
【问题描述】:

我正在 Excel 中创建一个宏,该宏在 Word 中的特定书签处插入一个表格。表插入过程和更新表的过程就像我期望的那样工作。

现在,我正在尝试对齐表格中的数据。我正在使用以下代码来对齐表格单元格中的数据:

objTbl.Cell(i, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
objTbl.Cell(i, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphRight

这很好用,这正是我希望数据显示的方式。

我遇到的唯一问题是数据出现在每个单元格的顶部,我希望它出现在每个单元格的中间。这可能吗?我尝试使用以下代码调整行高:

WrdApp.ActiveDocument.Tables(1).Rows.Height = 15

我已经尝试了 15 和 20,但没有任何区别。 我的 VBA 经验绝大多数都在 Excel 中。所以这是一个从 Excel 编程 Word 的学习曲线。任何建议,将不胜感激。提前感谢您的帮助.......

【问题讨论】:

  • 尝试类似:

标签: excel vba ms-word text-alignment


【解决方案1】:

也许您应该花 60 分钟研究的一部分时间来录制宏。虽然您不想使用记录的代码,但它会指向您需要使用的对象和属性。当然,您首先需要知道如何使用 UI 来实现您想要的。

Sub CellAlignment()
'
' CellAligment Macro
'
'
   Selection.SelectCell
   Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
   Selection.Cells.VerticalAlignment = wdCellAlignVerticalCenter
End Sub

记录代码后,您可以使用online help 或对象资源管理器获取指向更多可用代码的指针,例如

ActiveDocument.Tables(1).Range.Cells.VerticalAlignment = wdCellAlignVerticalCenter

【讨论】:

  • @TimothyRylatt........谢谢你的建议。我今天就试试........
  • @TimothyRylatt.........感谢您的建议。我录制了一个宏,发现问题是之后的间距。我现在正在研究语法。我不想将它应用于整个文档,只是我正在创建的表格。我可以将其应用于整个表格还是必须逐个单元格地进行?
  • @Shaves - 为使表格格式正常工作,表格需要插入到采用 Normal 样式格式化的段落中,并且 Normal 样式的定义必须 匹配文档默认值。 (这些是通过“管理样式”对话框的“设置默认值”选项卡设置的,不能通过VBA设置)这将导致表格中自动抑制后的空间。
  • @Shaves - 如果您的文档中不是上述情况,您将需要: 1) 将创建表格的范围后面的空格设置为零; 2) 遍历表格的每个单元格并应用格式。
  • @Shaves - 这只是建议从已经具有所需默认格式的模板 (.dotx/.dotm) 创建文档的众多原因之一。
猜你喜欢
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多