复制Microsoft Word 2007的表宏

时间:2010-08-15 18:27:43

标签: vba ms-word word-vba

我对MS Office word 2007文档有一个简单的要求。我需要宏后面的代码复制一个表(格式化一个)并在每次运行此宏时粘贴它。

方案如下: - 1.我将复制一个格式化的表(包含7-8行和5-6列等)并将其作为按钮或快捷键存储在宏中。

1.无论何时我想要或在同一个word文档中的任何特定位置,我都会放置光标并单击宏按钮(运行我们的宏)。此宏应粘贴具有相同行数和列数以及样式的相同格式化表。

2.我可以多次运行此宏,但每次都应粘贴同一个表。

我希望代码将在VB中。

我知道如何创建宏,分配按钮,快捷键,安全性等。我只需要宏后面的VB代码(或任何代码),这可能是上述场景的解决方案。

很抱歉很长的帖子,但我的要求非常清楚。

先谢谢...干杯! Shilpa Silk

1 个答案:

答案 0 :(得分:2)

使用宏录制器。调用刻录机,然后完成复制和粘贴表格的步骤,然后您可以编辑它以查看宏的实际指令。但请注意,宏录制器不会保存剪贴板的内容,因此创建表的标记将不会与宏一起保存。为了使它工作,在运行宏之前,表应该存在。

这是一种可能的方法:

在开始录制之前,应满足以下条件:

  1. 你的桌子应该在 一篇文章的开头 段落标记
  2. 你的光标应该是 你想放置新的地方 表
  3. 然后打开录音并完成以下步骤:

    1. 键入_table_goes_here_所在的位置 光标是
    2. 按Ctrl + Home转到文档的开头(只是 在主表之前
    3. 按住Shift并按down arrow键足够的时间,直到 选择整个表格,
    4. 按Ctrl + C复制表格
    5. 按Ctrl + F打开“查找”对话框
    6. 在“查找内容”框中键入占位符文本(_table_goes_here_) 然后单击“查找下一个”
    7. 找到并选择了占位符文本后,按Esc键 解除查找对话框的关键
    8. 按Ctrl + V粘贴复制的表格,将替换您的表格 占位符文本
    9. 结束微距录制。
    10. 编辑 - 第二种方法
      另一种方法是启动宏录制,然后从头开始创建表,这样您就不需要预先存在的表来使宏工作。当您对表格结束记录进行整形和格式化后,您已经捕获了所有必需的步骤,以便在任何地方放置完全相同的表格。

      我刚刚测试了第二种方法,它运行得很好。以下是录音机为我的小测试生成的代码:

      Sub MakeTable()
      '
      ' MakeTable Macro
      ' Macro recorded þ16þ/08þ/2010 by Majid Fouladpour
      '
          ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:= _
              4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
              wdAutoFitFixed
          With Selection.Tables(1)
              If .Style <> "Table Grid" Then
                  .Style = "Table Grid"
              End If
              .ApplyStyleHeadingRows = True
              .ApplyStyleLastRow = True
              .ApplyStyleFirstColumn = True
              .ApplyStyleLastColumn = True
          End With
          With Selection.Tables(1)
              .Style = "Table Columns 4"
              .ApplyStyleHeadingRows = True
              .ApplyStyleLastRow = True
              .ApplyStyleFirstColumn = True
              .ApplyStyleLastColumn = True
          End With
          Selection.TypeText Text:="Col one"
          Selection.MoveRight Unit:=wdCharacter, Count:=1
          Selection.TypeText Text:="Col two"
          Selection.MoveRight Unit:=wdCharacter, Count:=1
          Selection.TypeText Text:="Col three"
          Selection.MoveRight Unit:=wdCharacter, Count:=1
          Selection.TypeText Text:="Col four"
          Selection.MoveDown Unit:=wdLine, Count:=1
          Selection.MoveLeft Unit:=wdCharacter, Count:=3
          Selection.TypeText Text:="Item 1"
          Selection.MoveDown Unit:=wdLine, Count:=1
          Selection.TypeText Text:="Item 2"
          Selection.MoveDown Unit:=wdLine, Count:=1
          Selection.TypeText Text:="Item 3"
      End Sub