Слово VBA: есть ли способ вставить переменную в макрос поиска и замены?

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

pages.count

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

replacement.text

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

Selection.TypeText Text:=Pages.Count

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



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

9
задан DavidPostill
01.12.2022 14:31 Количество просмотров материала 2892
Распечатать страницу

2 ответа

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

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

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

0
отвечен Rich Michaels 2022-12-02 22:19

Использовать Элементы Управления Содержимым. Вы можете пометить их, а затем искать и заменять их текст. Ниже приведен клип экрана, и вы можете увидеть тот, который я выбрал имеет маркировку модуля часов. В вашем коде VBA у вас будет процедура, подобная той, что я включил в качестве примера ниже, которая искала все элементы управления содержимым в документе, а затем заменяла текст элементов управления, которые она хотела. enter image description here

        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
0
отвечен Rich Michaels 2022-12-03 00:36

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх