1

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

http://www.word.mvps.org/FAQs/Customization/ExportAutocorrect.htm

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

У кого-нибудь есть предложения по удалению записей?

1 ответ1

0

Вы можете сделать это с помощью макроса. Вы можете сделать резервную копию вашего файла автозамены в первую очередь.

В пустом документе перейдите на вкладку Разработчик и нажмите кнопку Visual Basic в крайнем левом углу. Я просто добавил следующий код в "ThisDocument".

ШАГ 1. Используйте макрос для создания таблицы со всеми существующими записями автозамены.

Sub getACentriesTable()

Dim Z As Integer

z = приложение.Автозамена.Записи.подсчитывать

Дим я как целое

Для я = 1 К я

Selection.InsertAfter Application.AutoCorrect.Entries(i).Name & vbTab & Application.AutoCorrect.Entries(i).Value & vbCr

Далее я

Выбор.ConvertToTable

End Sub

Когда вы запустите вышеупомянутый макрос getACEntriesTable, вы должны получить в своем документе таблицу из 2 столбцов, в которой перечислены все ваши текущие записи автозамены.

Затем вы можете просмотреть таблицу и удалить все записи, которые вы не хотите хранить.

ШАГ 2. Используйте макрос для удаления ВСЕХ записей автозамены, а затем повторно импортируйте только записи из вашей таблицы.

Sub resetACentries()

'УДАЛИТЬ все автозамены

Dim Z As Integer

z = приложение.Автозамена.Записи.подсчитывать

Дим я как целое

Для i = z до 1 шаг -1

Application.AutoCorrect.Entries(i).Delete

'NB: looping through items from end to start so index number is correct after each deletion (will only be z number of entries at very start, will decrease by 1 each loop)

Далее я

ДОБАВЬТЕ НАЗАД в записи, которые вы оставили в таблице в этом документе

Dim tblRow As row

Для каждого tblRow в выборе.Столы (1).Ряды

Application.AutoCorrect.Entries.Add Left(tblRow.Cells(1).Range.Text, Len(tblRow.Cells(1).Range.Text) - 2), Left(tblRow.Cells(2).Range.Text, Len(tblRow.Cells(2).Range.Text) - 2)

'NB не хочу, чтобы последние два скрытых символа маркера в ячейке таблицы, просто текстовая строка, поэтому длина строки - 2

следующий

End Sub

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