Мне нужно вставить часть имени файла Word в его заголовок. Например, у нас есть документы Word с именами файлов, такими как

'01 00 50 Instructions to Bidders.docx' 

и хотел бы разобрать «01 00 50» и поместить его в часть заголовка и «Инструкции для претендентов» в другой. Я нашел несколько макросов VB, которые разбирают, вставляют имя файла и разбирают его, например,

Sub InsertFileName()
    Selection.InsertBefore Text:=Left(ActiveDocument.Name, _
      Len(ActiveDocument.Name) - 4)
End Sub

но вышеупомянутый макрос вставляет текст в позицию курсора. Мне нужно разбить его и найти в определенных частях заголовка, как это

Smith Building Renovation                                    01 00 50
42 Main St.               Instruction to Bidders          Page 1 of 5
Augusta, ME                                               23-Feb-2014

Мне понятно, как разбить имя файла в VB, но как найти разобранный текст в определенных частях документа?

1 ответ1

0

Если начало ваших имен файлов всегда имеет одинаковый формат; Т.е. NN NN NN Filename.docx тогда это должно работать;

Private Sub Document_Open()

Dim j As Long
Dim str As String
str = ActiveDocument.Name
Dim strRight As String
Dim strLeft As String


strRight = right(str, Len(str) - 9)
strLeft = left(str, 9)

For j = 1 To ActiveDocument.Sections.Count
    With ActiveDocument.Sections(j)
        .Headers(wdHeaderFooterPrimary).Range.Text = strRight + " middle " + strLeft

    End With
Next
End Sub

РЕДАКТИРОВАТЬ: Извините, редактирование включает в себя возможность использовать обе части имени файла. Немного грязно, но сделаю работу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .