СообЧа > База Знаний > Программы > Microsoft Office

Вопрос

У меня к вам один вопрос:

Есть Word'овская таблица состоящая из двух колонок и имеет много строк. Это словарь.

В первой колонке написаны слова, а в другой их значение. Слова в первой колонке и некоторых строках могут быть одинаковыми. Во второй колонке определения могут различаться. Можно ли сделать средствами Офиса так, чтобы слова в первой колонке не повторялись, т.е. удалить те строки, слова в первой колонке которой уже были?

Или второй вариант, объединить две строки содержащие одинаковые слова в первой колонке.

P.S. Таблица отсортирована по алфавиту первой колонки.

Ответ

Вот набросал такой макрос. Ставишь курсор в начало первой строки первой колонки (или второй, если в первой шапка таблицы) и запускаешь

Sub Макрос3
() Dim strOld As String strOld = "" '
Обнуляем переменную хранилище Selection.EndKey Unit:=wdLine, Extend:=wdExtend '
Выделяем содержимое ячейки If strOld = "" Then strOld = UCase$(Left$(Selection.Text, Len(Selection.Text) — 2)) '
Присваиваем содержимое без специальных знаков ' переменной и переводим в верхний регистр Selection.MoveDown Unit:=wdLine, Count:=1 '
Смещаемся вниз на одну строку Selection.EndKey Unit:=wdLine, Extend:=wdExtend '
Выделяем содержимое ячейки While (Len(Selection.Text) — 2) > 0 '
Цикл до пустой строки, которая вне таблицы (внизу) If strOld = UCase$(Left$(Selection.Text, Len(Selection.Text) — 2)) Then '
Сравниваем с переменной-хранилищем Selection.SelectRow ' Выделяем строку таблицы Selection.Rows.Delete '
Удаляем выделенную строку Else strOld = UCase$(Left$(Selection.Text, Len(Selection.Text) — 2)) '
Меняем содержимое переменной-хранилища Selection.MoveDown Unit:=wdLine, Count:=1 '
Смещаемся вниз на одну строку End If Selection.EndKey Unit:=wdLine, Extend:=wdExtend '
Выделяем содержимое ячейки Wend End Sub


Если что — подредактируй. Для записи макроса использовал рекордер. Добавил только цикл и переменную

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация