gpt4 book ai didi

excel - VBA 将 Microsoft Word 书签和选择文本导出到 Excel 电子表格

转载 作者:行者123 更新时间:2023-12-03 02:13:07 27 4
gpt4 key购买 nike

我最近被任命负责我工作中客户的文档标准化工作。他们是政府,所以我无法以示例的方式发布任何内容以供引用。抱歉。

我试图在 VBA 中做的是拥有一个包含大约 80 个书签的 Word 文档(我必须执行此操作有 27 个文件)提取书签的 .Name.Selection 到 Excel 工作表。

作为示例,我提供以下内容:

Hello, my name is World!

如果上面是word文档,则World!是书签的.Selection,(Doc_World) 将是书签名称。我正在尝试编写将 "Doc_World""World!" 写入 Excel 工作表的宏。

最后一个警告是,目前没有任何标准化,因此我需要它来循环浏览当前打开文档中的书签。

我实际上设法找到了一些可以满足我想要的功能的东西,然后将我找到的其他一些信息拼接在一起以创建有用的东西,但是您必须事先创建所有 xls 文件。 @RachelHettinger 有一个比我自己想出的更优雅的答案。为了方便引用,以下是我的弗兰肯斯坦:

Sub WdBkMktoXL()
Dim ObjExcel As Object, ObjWorkBook As Object, ObjWorksheet As Object
Dim Bmk() As String
Dim x As Integer, J As Integer

Set ObjExcel = CreateObject("EXCEL.APPLICATION")
Set ObjWorkBook = ObjExcel.Workbooks.Open("C:\Users\Zach\Desktop\ETTP\TermsAndConditions\1.xlsx")
Set ObjWorksheet = ObjWorkBook.Worksheets("Sheet1")

x = ActiveDocument.Bookmarks.Count
ReDim Bmk(x)
For J = 1 To x
Bmk(J) = ActiveDocument.Bookmarks(J).Name
ObjWorksheet.Range("A" & J) = ActiveDocument.Bookmarks(J).Range.Text
ObjWorksheet.Range("B" & J) = ActiveDocument.Bookmarks(J).Name
Next J

ObjWorkBook.Save
ObjWorkBook.Close
Set ObjWorksheet = Nothing
Set ObjWorkBook = Nothing
ObjExcel.Quit
Set ObjExcel = Nothing
End Sub

最佳答案

如果我正确理解您的需求,这个宏应该会有所帮助。它循环遍历事件文档中的所有书签并将它们导出到 Excel 中的新文件中:

Sub ExportBookmarksToExcel()
Dim bk As Bookmark
Dim appXl As Excel.Application
Dim wbk As Excel.Workbook
Dim wst As Excel.Worksheet
Dim lRow As Long

Set appXl = CreateObject("Excel.Application")
With appXl
.Visible = True
Set wbk = .Workbooks.Add
Set wst = wbk.Worksheets(1)
lRow = 1
wst.Cells(lRow, 1) = "Bookmark name"
wst.Cells(lRow, 2) = "Bookmark text"
wst.Rows(lRow).Font.Bold = True
End With

For Each bk In ActiveDocument.Bookmarks
lRow = lRow + 1
wst.Cells(lRow, 1) = bk.Name
wst.Cells(lRow, 2) = bk.Range.Text
Next bk
wst.UsedRange.Columns.AutoFit

End Sub

注1:由于此代码使用早期绑定(bind),因此需要引用 Excel 库(工具:引用)。注2:它使用CreateObject来创建Excel的实例,因此每次宏运行时,都会创建一个新的实例。 (GetObject 将使用现有实例,但如果未找到则失败。)

关于excel - VBA 将 Microsoft Word 书签和选择文本导出到 Excel 电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222328/

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