gpt4 book ai didi

vba - 如何将Word 2013中格式化的段落复制到Excel?

转载 作者:行者123 更新时间:2023-12-02 11:04:01 24 4
gpt4 key购买 nike

我想打开一个 Word 文档,并将每个格式化的段落复制到 Excel 工作表中其自己的单元格中,保留格式以供进一步处理。我已经能够将每个段落复制到其自己的单元格中,甚至将项目符号/列表保留在相邻的单元格中。

但是,我可以将段落复制为对象(而不是格式化文本)或纯文本。我无法复制格式化文本。

这是我执行复制的子例程代码:

Private Sub Load_Schedule()
Dim ParaCount As Integer
Sheets(FileName).Activate
Sheets(FileName).Columns(1).AutoFit
For ParaCount = 1 To wDoc.Paragraphs.Count
wDoc.Paragraphs(ParaCount).Range.FormattedText.Copy
Sheets(FileName).Cells(ParaCount, 1).PasteSpecial Paste:=xlPasteFormats
Next ParaCount
End Sub

我在wDoc端尝试了Range.Copy,并且在Sheets端尝试了各种Paste:=和Cells(ParaCount, 1).Paste。似乎没有什么可以将格式带入单元格。

最佳答案

这有一些技巧和一些需要记住的事情。一、代码:

Option Explicit

Sub ParaCopy()
Dim wApp As Word.Application
Dim wDoc As Word.Document
Set wApp = CreateObject("Word.Application")
Set wDoc = wApp.Documents.Open("C:\Temp\testdoc.docx", ReadOnly:=True)

Dim i As Long
i = 0
Dim wPara As Word.Paragraph
For Each wPara In wDoc.Paragraphs
If wPara.Range.Words.Count > 1 Then
wPara.Range.Copy
Sheet1.Range("A1").Offset(i, 0).Activate
Sheet1.Paste
i = i + 1
End If
Next wPara

wDoc.Close
wApp.Quit
End Sub

所以这从两个方面起作用:

  1. 我们使用 Word ParagraphRange.Copy 方法。这会捕获段落的所有属性,包括格式。
  2. 要复制到特定单元格,这是需要使用 Activate 的极少数情况之一。这向 Excel 发出信号,表明即将进行的复制操作将应用传入对象(在本例中为 Word 段落对象)的所有属性。

确保检查该段落中至少有一个单词。否则粘贴操作将会失败。

这是我的测试 Word 文档:

enter image description here

这是粘贴后的工作簿 Sheet1:

enter image description here

关于vba - 如何将Word 2013中格式化的段落复制到Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50607961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com