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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2013, 00:03   #21
bin_2
Новичок
Джуниор
 
Регистрация: 17.02.2013
Сообщений: 1
По умолчанию

Доброго времени суток!
Помогите написать макрос. Задача стоит следующая. Есть таблица с несколько сот тысяч строками. Первая колонка - значение ID строки. Нужно удалить строки в определенных интервалах. Например нужно удалить строки с 28481 по 29163, далее с 30638 по 31320 и т.д. Вроде бы ничего сложного, но никак у меня не хочет работать.

Заранее спасибо
bin_2 вне форума Ответить с цитированием
Старый 18.02.2013, 00:23   #22
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Вариант чтоб не сильно думать и не много писать - цикл по строкам снизу вверх, проверяете ID по условию select case - если есть в диапазоне, то строка удаляется.
Код:
Sub tt()
    Dim i&
    Application.ScreenUpdating = False
    For i = [a1].CurrentRegion.Rows.Count To 1 Step -1
        Select Case Cells(i, 1).Value
        Case 28481 To 29163, 30638 To 31320
            Rows(i).Delete
        End Select
    Next
    Application.ScreenUpdating = True
End Sub
Если напрягает скорость - цикл по массиву из диапазона (не по диапазону!), ставим единички в созданный массив аналогичной высоты, выгружаем его рядом в свободный столбец, с помощью columndifferences удаляем сразу всё.
Вот как тут (см. в конце пост SAS888, хотя и ZVI тоже делал по такому алгоритму): http://www.programmersforum.ru/showthread.php?t=145071
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 18.02.2013 в 00:36.
Hugo121 вне форума Ответить с цитированием
Старый 11.12.2013, 23:22   #23
Deliriousss
Новичок
Джуниор
 
Регистрация: 11.12.2013
Сообщений: 2
По умолчанию Макрос для удаления произвольной строки

Ребята, очень нужна ваша помощь, никак не получается самой справиться.
Нужно написать макрос, который будет очищать строку, в одной из ячеек которой стоит курсор. Строка, естественно, может быть абсолютно любая.
Помогите пожалуйста. Заранее благодарна.

Последний раз редактировалось Deliriousss; 11.12.2013 в 23:25.
Deliriousss вне форума Ответить с цитированием
Старый 11.12.2013, 23:57   #24
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
sub ClearRow
  activecell.entirerow.clearcontents
end sub
и традиционно:
тема: макрос для удаление произвольной строки
в тексте
макрос, который будет очищать строку

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

Последний раз редактировалось IgorGO; 12.12.2013 в 00:01.
IgorGO вне форума Ответить с цитированием
Старый 12.12.2013, 00:22   #25
Deliriousss
Новичок
Джуниор
 
Регистрация: 11.12.2013
Сообщений: 2
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Код:
sub ClearRow
  activecell.entirerow.clearcontents
end sub
и традиционно:
тема: макрос для удаление произвольной строки
в тексте
макрос, который будет очищать строку

видимо, Вам по-барабану удалять строку или очищать строку. я предложил макрос, который будет очищать строку.
нет-нет, мне нужно именно очистить. описалась.
Deliriousss вне форума Ответить с цитированием
Старый 12.12.2013, 00:53   #26
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

да, извините, тема не Ваша, будем считать, что я угадал с макросом.

работает?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 02.10.2014, 23:07   #27
g4all
Новичок
Джуниор
 
Регистрация: 02.10.2014
Сообщений: 1
По умолчанию удаление пустых строк, плюс формулы

Есть макрос
PHP код:
Sub Udalenie_Pustyh_Strok()  
Dim r As LongFirstRow As LongLastRow As Long  
FirstRow 
ActiveSheet.UsedRange.Row  
LastRow 
ActiveSheet.UsedRange.Rows.Count ActiveSheet.UsedRange.Row  
For LastRow To FirstRow Step -1  
If Application.CountA(Rows(r)) = 0 Then  
Rows
(r).Delete  
End 
If  
Next r  
End Sub 
Нужно в него еще дописать формулу =ЕСЛИ(V12="";"";AB12-V12) на весь столбец AL, формат ячейки "время"
И чтобы высота рядков была 14.

Помигите пожалуйста.
Спасибо.
g4all вне форума Ответить с цитированием
Старый 03.10.2014, 00:17   #28
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Включите рекордер, добавьте формулу и "высоту рядков", выключите рекордер.
Добавьте полученные строки в этот макрос. Вероятно нужно будет использовать FirstRow и LastRow.
А как конкретно должна выглядеть формула - непонятно. Неужели именно так, как написано?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 03.10.2014, 00:19   #29
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
application.intersect(ActiveSheet.UsedRange, [al12:al55555]).formular1c1 = "=if(rc22="""","""",rc28-rc22)"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 03.10.2014 в 00:21.
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Macros для нахождения и удаления слов конгер Microsoft Office Word 1 13.10.2009 18:14
скрипт для удаления Cookies mahnograd Софт 10 18.09.2009 08:53
отмена удаления строки: вопрос Evgenii БД в Delphi 1 19.06.2009 01:43
Программа для удаления AutoRun вирусов pomoshnic Помощь студентам 1 01.04.2009 04:57
Нужна программа для удаления содержимого папки DNK1980 Фриланс 6 11.02.2008 16:52