gpt4 book ai didi

excel - 使用 VBA 从 Word 获取文本到 Excel

转载 作者:行者123 更新时间:2023-12-04 20:45:29 26 4
gpt4 key购买 nike

到目前为止,我已经接近解析文档并获取两个标题之间的标题、标题和文本的工作代码。我试图提取的内容有项目符号、换行符等,我想在将其粘贴到单元格时保持格式。一直在环顾四周并阅读很多论坛,但无法弄清楚如何保持格式不变。我查看了 PasteSpecial ,但它会将内容粘贴到多个单元格中,而且我想尽可能避免复制/粘贴。

下面是我拥有的一个非常早期的代码(有我正在调试/修复的错误):

Sub GetTextFromWord()

Dim Paragraph As Object, WordApp As Object, WordDoc As Object
Dim para As Object
Dim paraText As String
Dim outlineLevel As Integer
Dim title As String
Dim body As String
Dim myRange As Object
Dim documentText As String
Dim startPos As Long
Dim stopPos As Long
Dim file As String
Dim i As Long
Dim category As String

startPos = -1
i = 2

Application.ScreenUpdating = True
Application.DisplayAlerts = False


file = "C:\Sample.doc"
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open(file)

Set myRange = WordDoc.Range
documentText = myRange.Text

For Each para In ActiveDocument.Paragraphs
' Get the current outline level.
outlineLevel = para.outlineLevel

' Cateogry/Header begins outline level 1, and ends at the next outline level 1.
If outlineLevel = wdOutlineLevel1 Then 'e.g., 1 Header
category = para.Range.Text
End If

' Set category as value for cells in Column A
Application.ActiveWorkbook.Worksheets("Sheet1").Cells(i - 1, 1).Value = category

' Title begins outline level 1, and ends at the next outline level 1.
If outlineLevel = wdOutlineLevel2 Then ' e.g., 1.1
' Get the title and update cells in Column B
title = para.Range.Text
Application.ActiveWorkbook.Worksheets("Sheet1").Cells(i, 2).Value = title

startPos = InStr(nextPosition, documentText, title, vbTextCompare)

If startPos <> stopPos Then
' this is text between the two titles
body = Mid$(documentText, startPos, stopPos)
ActiveSheet.Cells(i - 1, 3).Value = body
End If

stopPos = startPos
i = i + 1

End If


Next para


WordDoc.Close
WordApp.Quit
Set WordDoc = Nothing
Set WordApp = Nothing
End Sub

Link to Sample Doc

最佳答案

您现在可能已经找到了解决方案,但我要做的是打开 excel,开始宏录制,然后选择一个单元格,单击图标以展开单元格输入字段,然后粘贴一些格式化文本。然后停止宏并查看代码。关键是粘贴到顶部的单元格字段中。获取 Word 宏所需的代码。希望这可以帮助。

关于excel - 使用 VBA 从 Word 获取文本到 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18504387/

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