Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2010, 16:56   #1
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию удаление строки с ячейкой, которая повторяется

Возможно этот вопрос уже расматривался и я не внимательна, но подскажите пожалуйста макрос,который бы удалял строку, в которой есть ячейка с повторением. тобишь не вся строка повторяется. а только данные одной ячейки. к примеру:
0 5748756 22 87
0 6583098 22 78
0 6543098 21 78
1 5748756 21 87
по результатам макроса должна удалиться последняя строка. тобишь на повторения проверяется только один столбец, а удаляться -вся строка.
спасибо.(Еxel 2003)
Aneli вне форума Ответить с цитированием
Старый 23.03.2010, 17:08   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Наберите в поиске по разделу "удаление дубликатов" (или просто слово дубликатов)

Найдёте несколько десятков подобных макросов.
EducatedFool вне форума Ответить с цитированием
Старый 23.03.2010, 17:29   #3
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Наберите в поиске по разделу "удаление дубликатов" (или просто слово дубликатов)

Найдёте несколько десятков подобных макросов.
подобных-да, они удаляют дубликаты строк. но либо я не так что то поняла, но в данном случае строки то не однаковые, тоесть фактически это не дубликат. повторяется только значение в одном столбце. объясните плиз в чем я ошибаюсь.
Aneli вне форума Ответить с цитированием
Старый 23.03.2010, 18:03   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

файл на операционный стол
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.03.2010, 15:38   #5
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию

вот примерный вид. в оригинале строк конечно больше. суть в том чтобы в столбце F удалились строки, которые имеют дубли ячеек F101-F105. спасибо .

Последний раз редактировалось Aneli; 24.03.2010 в 16:03.
Aneli вне форума Ответить с цитированием
Старый 24.03.2010, 15:52   #6
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

поясните фразу "в столбце F удалились строки", а лучше приложите пример строк на 20, и лист "хочу вот так"
Dophin вне форума Ответить с цитированием
Старый 24.03.2010, 16:09   #7
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию

Есть первый список с необходимыми для работы данными-лист1(file-primer). и есть второй список-лист2, который содержит лишь один столбец. необходимо чтобы макрос с первого листа удалил строки, в ячейках которых в стоблце F имеются такие же данные, как в столбце А листа2.надеюсь так может быть понятней чего я хочу)))
Вложения
Тип файла: rar primer.rar (2.0 Кб, 23 просмотров)
Тип файла: rar result.rar (1.8 Кб, 21 просмотров)

Последний раз редактировалось Aneli; 24.03.2010 в 16:18.
Aneli вне форума Ответить с цитированием
Старый 24.03.2010, 16:15   #8
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

возможно, но лист2 в Вашем примере пустой
Dophin вне форума Ответить с цитированием
Старый 24.03.2010, 16:19   #9
Aneli
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 16
По умолчанию

каюсь. вот ,исправила. и добавила файлик -result -то что должно біть в результате
Aneli вне форума Ответить с цитированием
Старый 24.03.2010, 16:37   #10
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

Код:
Sub pp()
Dim i As Long
Dim iL As Long, il2 As Long
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Sheets("лист1") 'лист с базой
Set sh2 = Sheets("Лист2") ' лист со списком
iL = sh1.Cells(Rows.Count, 1).End(xlUp).Row
il2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row
For i = iL To 1 Step -1
If Not sh2.Range(sh2.Cells(1, 1), sh2.Cells(il2, 1)).Find(what:=sh1.Cells(i, 6), LookIn:=xlValues, lookat:=xlWhole) Is Nothing Then
sh1.Range(sh1.Cells(i, 1), sh1.Cells(i, 17)).Delete shift:=xlUp
End If
Next i
End Sub
Dophin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06
Удаление из строки program123 Помощь студентам 4 21.05.2009 12:52
Удаление строки Minton87 Общие вопросы Delphi 4 07.05.2009 02:32
Помощь в Экселе с ячейкой avdlera91 Помощь студентам 0 18.04.2009 13:50