我最近在我的工作中负责了客户端的文档标准化工作。他们是政府,所以我不能以示例的方式发布任何内容以供参考。抱歉。VBA将Microsoft Word书签和选择文本导出到Excel电子表格
我想在VBA中做的是有一个大约80个书签的Word文档(有27个文件,我必须这样做)将书签的.Name
和.Selection
提取到Excel工作表。
作为一个例子,我提供以下内容:
你好,我的名字是世界!
如果上面是一个word文档,World!
是书签的.Selection
和(Doc_World
)将是书签名称。我正在尝试编写将把"Doc_World"
和"World!"
写入Excel工作表的宏。
最后一个警告是目前没有任何标准化的东西,所以我需要它在当前打开的文档中循环浏览书签。
我实际上设法找到了一些我想做的事情,然后将我发现的其他一些信息拼接起来创建一些工作,但您必须事先创建所有xls文件。 @RachelHettinger比我自己想出了更多更优雅的答案。为了参考,以下是我的frankenstein:
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
- 感谢您的解决方案! – user1059110