如何集中Word中的所有表,来自Excel - VBA

时间:2013-05-15 20:14:06

标签: vba excel-vba word-vba center excel

我是VBA的新手,我的第一个代码是复制excel表并将其粘贴到word。它工作正常,但问题是所有表格都是左对齐粘贴的,我希望它 center 对齐。有谁知道怎么做?要在这里发布我的代码:

Sub excel2word()

Dim objWord As New Word.Application
'Copy the range Which you want to paste in a New Word Document
Set objWord = CreateObject("Word.Application")


For i = 2 To 200
 With objWord
    .Documents.Add     
    Sheets("Plan2").Select
    Range("A" & i).Copy
    .Selection.PasteAndFormat (wdFormatPlainText)
    .Selection.TypeParagraph

    Sheets("Teste").Select        
    Range(Cells((26 * (i - 1) + 1), 1).Address, Cells(((26 * (i - 1) + 7)), 3).Address).Copy
    .Selection.PasteExcelTable True, False, False
    .Visible = True
    .Selection.TypeParagraph

    Sheets("Teste").Select
    Range(Cells((26 * (i - 1) + 8), 1).Address, Cells(((26 * (i - 1) + 16)), 3).Address).Copy
    .Selection.PasteExcelTable True, False, False
    .Visible = True
    .Selection.TypeParagraph

    Sheets("Teste").Select
    Range(Cells((26 * (i - 1) + 17), 1).Address, Cells(((26 * (i - 1) + 25)), 3).Address).Copy
    .Selection.PasteExcelTable True, False, False
    .Visible = True
    .Selection.TypeParagraph

End With
 Next


 End Sub

正如您所看到的,此代码复制在一次交互时粘贴3个表,即总共600个表!因此,逐个中心变得非常无聊。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

所以,我将尝试解释我将如何做到第一部分。第一部分是在VBA之外。在Word中,您可以创建或修改表格样式。由于您说您正在使用现有样式,因此可以修改它们以使表居中。假设您正在使用Light Shading表格样式(这是我从功能区扩展表格样式时看到的第一个表格样式)。执行以下操作:

  • 在Word文档中,创建一个基本表。您只需从“插入”选项卡中单击“插入表”,然后插入包含几个单元格的表。
  • 选择表格。您应该会看到功能区上显示“表工具”选项卡。单击“设计”。
  • 您应该在功能区的中心看到一些表格样式。找到您需要的那个(如有必要,展开下拉列表),然后单击鼠标右键。
  • 从上下文菜单中选择“修改表格样式”。
  • 将弹出“修改样式”对话框。
  • 单击格式,然后单击表格属性。在“表格属性”对话框的“表格”选项卡下,查找“对齐”。选择Center,然后单击OK。再次单击“确定”以保存更改。

现在,当您将该表格样式应用于标准表格时,该表格将居中。

如果有必要,第二部分是以编程方式应用该样式。我现在没有时间写出那部分内容,但我可以稍后编辑。或许这可能是你的起点。

答案 1 :(得分:0)

如果有人仍然需要它:

ActiveDocument.Tables(1).Rows.Alignment = wdAlignRowCenter