我想在变量cTable
中存储一个表,并在需要时将其粘贴到所有格式中。
Sub copytable()
Dim cTable As TABLE
Selection.Tables(1).Select
cTable = Selection.Tables ' how do i assign table into variable
Selection.MoveDown Unit:=wdLine, Count:=2
Selection.Paste cTable ' how it going to be paste exacty the copied table
End Sub
示例在表格图片中:
@ken这是没有variable
Selection.Tables(1).Select
Selection.COPY
Selection.MoveDown Unit:=wdLine, Count:=2
Selection.PasteAndFormat (wdPasteDefault)
答案 0 :(得分:1)
无法将表存储在变量中。可以使用变量来引用表,以便您可以始终引用它。
此代码示例演示了在引用表之前或之后是否插入新表无关紧要。如果它是文档中的第一个表并且它被复制到文档的开头,它仍然可以复制到文档的末尾(或其他任何地方)。
Sub ReuseTableReference()
Dim doc As word.Document
Dim tbl As word.Table
Dim rngTableTarget As word.Range
Set doc = ActiveDocument
Set tbl = doc.Tables(1)
Set rngTableTarget = doc.content
'Copy the table to the beginning of the document
rngTableTarget.Collapse wdCollapseStart
rngTableTarget.FormattedText = tbl.Range.FormattedText
'Copy the table to the end of the document
rngTableTarget.Start = doc.content.End
rngTableTarget.FormattedText = tbl.Range.FormattedText
'Copy the table to the current selection
Selection.FormattedText = tbl.Range.FormattedText
End Sub
当然,索引值中的硬编码通常是不可取的。在这种情况下,表格可以加入书签,以便您可以从书签中选择它,而不是:
Set tbl = doc.Bookmarks("tbl").Range.Tables(1)
(这里,索引值1指的是书签范围内的表格数。)