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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2010, 11:22   #11
vfv
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 54
По умолчанию

Всё! Удаляет.
Осталось убрать пустую строку.
Посмотри вложение.
Вложения
Тип файла: rar Архив WinRAR.rar (7.2 Кб, 42 просмотров)
vfv вне форума Ответить с цитированием
Старый 04.03.2010, 12:27   #12
vfv
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 54
По умолчанию

Разобрался сам!
Смотреть вложение.
Можно сделать ещё удаление одинаковых диапазонов,
идущих вподряд с разрывом в одну строку?
Пример во вложении.
Вложения
Тип файла: rar Архив WinRAR.rar (7.3 Кб, 48 просмотров)
Тип файла: rar Одинаковые диапазоны удалить.rar (6.2 Кб, 48 просмотров)
vfv вне форума Ответить с цитированием
Старый 06.03.2010, 00:30   #13
vfv
Пользователь
 
Регистрация: 28.07.2009
Сообщений: 54
По умолчанию

Цитата:
Сообщение от vfv Посмотреть сообщение
Разобрался сам!
Смотреть вложение.
Можно сделать ещё удаление одинаковых диапазонов,
идущих вподряд с разрывом в одну строку?
Пример во вложении.
Так всётаки возможно удаление одинаковых диапазонов,
идущих вподряд вниз с разрывом в одну строку?Оставлять нужно из одинаковых по одному.
vfv вне форума Ответить с цитированием
Старый 28.01.2011, 13:38   #14
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Вопрос в тему, хотя у меня немного другая задача.
Найти на одном листе код, который присутствует на другом листе и удалить строку на этом листе.
У меня-то оно сделано, но сделано циклом, смотрит код в столбце на одном листе, сравнивает с кодом на втором, если находит такой - удаляет строку.
Но, как уже говорилось, цикл - жутко медленная вешь.
Может можно решить мою задачу как-то по другому?
Спасибо.
p.s. Списки на первом и втором листе формируются программно, и могут содержать разное кол-во строк.
Вложения
Тип файла: zip Удалить строки.zip (103.8 Кб, 35 просмотров)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 28.01.2011 в 13:49. Причина: Добавлено - кол-во строк.
VictorM вне форума Ответить с цитированием
Старый 28.01.2011, 14:26   #15
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так вот один в один: http://www.planetaexcel.ru/forum.php?thread_id=23700
Там я правда тоже делал перебором, но в массивах, и удаление строк по одной, а не сразу весь Union. Но зато на больших объёмах не глючит. А Union можно и встроить, если доли секунды важны, и не нужно удялять более 1000 строк.
Хотя 1000 - это не проверено, но 4000 уже не объединилось.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 28.01.2011 в 14:30.
Hugo121 вне форума Ответить с цитированием
Старый 28.01.2011, 19:28   #16
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Так вот один в один
Да, именно оно!))
Спасибо!
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 17.02.2011, 11:53   #17
ВЭдуардВ
Новичок
Джуниор
 
Аватар для ВЭдуардВ
 
Регистрация: 22.09.2010
Сообщений: 1
Подмигивание

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Посмотрите вложение.
Искал что то подобное и нашел, но вот в версии с выбором диапазона более подходящее!!! Если можно выложите пример с версией выбора диапазона и с удалением дублеров. Заранее Спасибо
ВЭдуардВ вне форума Ответить с цитированием
Старый 18.02.2011, 06:28   #18
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
пример с версией выбора диапазона и с удалением дублеров.
Можно так:
Код:
Sub Main()
    Dim x As Range, y As New Collection, z As Range, i As Long, a(), s As String
    Set z = Application.InputBox("Ввод/выбор", "Диапазон", Type:=8)
    If z.Count = 1 Then Exit Sub Else a = z.Value
    For i = 1 To UBound(a, 1)
        s = Join(Application.Index(a, i, 0), "|")
        On Error Resume Next: y.Add s, s
        If Err <> 0 Then
            If x Is Nothing Then Set x = z.Rows(i) Else Set x = Union(x, z.Rows(i))
            On Error GoTo 0
    End If: Next: x.EntireRow.Delete
End Sub
После запуска макроса, при запросе диапазона для сравнения, нужно либо ввести диапазон вручную, либо выделить его мышкой.
Пример во вложении.
Вложения
Тип файла: rar Книга1.rar (9.8 Кб, 46 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 03.04.2011, 15:22   #19
Hom_1985
 
Регистрация: 03.04.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Можно так:
Код:
Sub Main()
    Dim x As Range, y As New Collection, z As Range, i As Long, a(), s As String
    Set z = Application.InputBox("Ввод/выбор", "Диапазон", Type:=8)
    If z.Count = 1 Then Exit Sub Else a = z.Value
    For i = 1 To UBound(a, 1)
        s = Join(Application.Index(a, i, 0), "|")
        On Error Resume Next: y.Add s, s
        If Err <> 0 Then
            If x Is Nothing Then Set x = z.Rows(i) Else Set x = Union(x, z.Rows(i))
            On Error GoTo 0
    End If: Next: x.EntireRow.Delete
End Sub
После запуска макроса, при запросе диапазона для сравнения, нужно либо ввести диапазон вручную, либо выделить его мышкой.
Пример во вложении.
Здравствуйте. А не могли бы вы подсказать для чего здесь используется коллекция y
Hom_1985 вне форума Ответить с цитированием
Старый 03.04.2011, 15:31   #20
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

If Err <> 0 Then -> значит не добавилось в коллекцию -> значит повтор -> значит добавляем в диапазон для удаления.

Но на большом количестве удаляемых будут тормоза именно при внесении в Union.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск одинаковых строк Demitriy Microsoft Office Excel 45 26.07.2010 08:50
Перенос строк по двойному клику в Excel 2003 Riddick Помощь студентам 8 15.12.2009 16:59
удаление одинаковых ссылок neoman1 Microsoft Office Word 6 30.11.2009 16:05
удаление одинаковых элементов из массива sauron99 Общие вопросы Delphi 6 15.04.2009 21:27
удаление одинаковых слов (С/С++) jewel Помощь студентам 1 12.12.2008 15:14