【问题标题】:Copy Text from Table in Word and Retaing Formatting从 Word 表格中复制文本并保留格式
【发布时间】:2019-05-17 07:27:50
【问题描述】:

我在将一个单元格从表格复制到另一个单元格时遇到问题。我在这里说的是两个word文档。我可以复制文本,但项目符号和一些格式都消失了。

我试过.Formattedtext,但还是不行。

Dim test As Word.Cell

'An error occurs something like "Object variable or With block variable not set"
test.Range.FormattedText = CTPDoc.Tables(2).Rows(testCount).Cells(3).Range.FormattedText

【问题讨论】:

  • 你试过Selection.PasteAndFormat (wdFormatOriginalFormatting)吗?
  • 我没有这样做。我该如何使用它?对不起,我是 VBA 新手
  • 你能展示你尝试了什么吗?
  • Dim test as word.cell test.Range.FormattedText = CTPDoc.Tables(2).Rows(testCount).Cells(3).Range.FormattedText 出现类似“Object variable or With块变量未设置”

标签: vba ms-word


【解决方案1】:

这是一个例子。

假设我们在一个 word 文档中有两个表格。请看下面的截图

假设我们要将数据从Cell 1 的Table 1 粘贴到Cell 1 的Table 2 然后试试这个

Sub Sample()
    Dim tbl1 As Table, tbl2 As Table

    Set tbl1 = ActiveDocument.Tables(1)
    Set tbl2 = ActiveDocument.Tables(2)

    tbl1.Cell(1, 1).Range.Copy
    tbl2.Cell(1, 1).Range.PasteAndFormat (wdFormatOriginalFormatting)
End Sub

这就是宏的作用

希望这会有所帮助:)

【讨论】:

  • 我想我可以在我的场景中使用它。这两个表来自不同的文件。我的问题是在打开目标文件并粘贴所有值之前先获取所有值。谢谢
  • 您上面的代码表明您正在读取表格中的值,因此我上面建议的方法对您有用。试一试
  • 我有一个问题...我认为现在一切正常,但我在另一台计算机上尝试过,.PastandFormat 行出现错误。它说“命令不可用”:(
  • 您在那台电脑上使用的是哪个 MS Office 版本?
  • 我在 2010 年编写代码和 2007 年进行测试。我尝试了不同的参数而不是 wdFormatOriginalFormatting 和一些作品,但格式有点混乱。一种有效,但仅在一种情况下有效。我的意思是当我尝试使用不同的源文件时,格式又被弄乱了。
【解决方案2】:

@Siddharth 溃败 你的回答真的很有帮助。这不是我问题的确切答案,但至少我了解了PasteandFormat 及其不同类型,例如wdFormatOriginalFormatting。也许有一天我可以使用它。

现在解决了我的问题。 使用 Siddharth 给出的逻辑,我使用了简单的tbl2.Cell(1, 1).Range.Paste 而不是PasteandFormat。实际上PasteandFormat 有效,但仅在选定的源文件/表中发生了问题。我认为源表中存在一些格式,当粘贴到另一个单元格中时,它看起来会一团糟。我不确定那到底是什么,但.Paste 绝对为我解决了这个问题。我希望我也可以帮助别人:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2021-06-10
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多