Я недавно был назначен ответственным за стандартизацию документов для клиента на моей работе.Это правительство, поэтому я не могу ничего публиковать в качестве примеров для справки.Извините.
В VBA я пытаюсь создать документ Word, содержащий около 80 закладок (для этого нужно сделать 27 файлов), извлечь .Name
закладки и .Selection
к листу Excel.
В качестве примера я предлагаю следующее:
Здравствуйте, меня зовут Мир!
Если вышеупомянутый текстовый документ, 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