Итак, что я хотел бы сделать, так это чтобы макрос определил количество страниц в документе через:

pages.count

Насколько я знаю, использование метода поиска и замены в этом случае невозможно, так как я не могу вставить переменную в

replacement.text

Другой метод, который я попробовал, это просто сначала найти расположение части текста, которая должна быть заменена, выбрать его и затем использовать

Selection.TypeText Text:=Pages.Count

но это приводит к ошибке объекта требуется. Так что это тоже не работает. Таким образом, у меня нет идей, какой метод использовать для замены текста.

У кого-нибудь будет идея, как подойти к этому вопросу?

2 ответа2

0

Я не хочу звучать эзотерически, но на самом деле в Microsoft Word нет такой вещи, как настоящая "страница". Поскольку Microsoft Word является программой обработки текста, а не программой макета страницы, Microsoft Word динамически зависит от многих факторов, определяющих, что помещается на печатной странице. Некоторые из них включают в себя шрифт, размер точки, интервал, параметры поля, тип страницы, ориентацию страницы, параметры драйвера принтера и многое другое.

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

Пожалуйста, опишите полностью, что вы пытаетесь сделать.

0

Используйте Контент Контроля. Вы можете пометить их, а затем искать и заменять их текст. Ниже скриншот экрана, и вы можете увидеть, что у того, что я выбрал, есть надпись «Часы модуля». В вашем коде VBA у вас будет подпрограмма, похожая на ту, которую я включил в качестве примера ниже, которая ищет все элементы управления содержимым в документе и затем заменяет текст требуемых элементов управления.

        For Each cc In doc.ContentControls
        If cc.Tag = "Course hours" Then
            cc.Range.Text = courseHours
        End If
        If cc.Tag = "Course minutes" Then
            cc.Range.Text = courseMinutes
        End If
        Next

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