【问题标题】:Indent table pasted from Excel into Word从 Excel 粘贴到 Word 中的缩进表
【发布时间】:2019-05-23 22:24:48
【问题描述】:

我想知道如何从 MS Word 中的 Excel 表格中缩进粘贴。当我遇到错误时,我当前的代码可能有什么问题?

我尝试使用rngPara.Indent。我当前的代码通过 Excel 范围运行,并根据每个案例选择“案例”并构建 Word 文档。当前案例贴table5Case "table5"

部分来自我当前用于复制粘贴 Excel 表格的代码:

   Dim wdRngPL As Object 'Word.Range
   Set wdRngPL = .Range.Characters.Last
    Case "table5"
      ThisWorkbook.Sheets("Pricelist").Range("B31:D681").Copy
        With wdRngPL
        Set rngPara = .Paragraphs.Last.Range
        rngPara.Style = "Attachment"
        rngPara.PasteExcelTable False, False, False
        '.Tables(.Tables.Count).AutoFitBehavior wdAutoFitWindow
        .Font.Hidden = 0
        rngPara.Indent
        Set rngPara = Nothing
        End With

我想模拟手工工作。如果我删除rngPara.Indent,那么我的过程将是这样的。表格正在从 Excel 粘贴到 Word。我必须去 Word 文档选择我的表格并点击一次Increase Indent

【问题讨论】:

  • 你想缩进什么 - 表格本身或单元格内容?你想缩进多少?
  • @macropod 我想将表格从左侧缩进 2.3 厘米

标签: excel vba ms-word


【解决方案1】:

由于表格被粘贴在Range 的末尾,因此可以直接选择Table 对象:

Dim tbl as Word.Table 'or Object
Set tbl = wdRngPL.Tables(wdRngPl.Tables.Count)

从那时起,获取表格的范围并应用所需的格式:

tbl.Range.Paragraphs.Indent

问题中的代码没有给出预期结果的原因是rngPara 可能不包含粘贴的内容。要查看此类内容,请插入一个Select 方法(例如,rngPara.Select),在其后的行上设置一个断点,然后在 Word 文档中查看已选择的内容。这将提供有关解决所需对象所需的线索。

【讨论】:

  • 感谢您的帮助!我收到一个错误用户定义类型未定义并且调试器指向Dim tbl As Word.Table 'or Object
  • 我有很多“案例”,实际上在代码完成后 Word 文档中的所有表格都必须缩进。也许缩进所有表格会更好?
  • @user7202022 'or Object 以防您使用后期绑定。尝试调暗为 Object 而不是 Word.Table。对于第二条评论:可能 - 你需要决定......测试它,看看什么效果更好,现在你已经有了缩进表格的代码。
  • 在我的代码中,在'.Tables(.Tables.Count).AutoFitBehavior wdAutoFitWindow 之后,适用于每种情况的解决方案是.Tables(.Tables.Count).Range.Paragraphs.Indent。但是知道如何缩进所有表格会很有趣
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多