|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.01.2012, 18:55 | #1 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Удаление строк по значению ячеек диапазона
Добрый день уважаемые форумчане!
Будьте добры, подскажите по этому коду: Sub test() Application.ScreenUpdating = False ' отключаем обновление экрана Dim sh As Worksheet: Set sh = ActiveSheet Dim FirstCell As Range: Set FirstCell = sh.Range("W2") ' первая ячейка ' берем диапазон до последней заполненной Dim ra As Range: Set ra = sh.Range(FirstCell, FirstCell.End(xlDown)) ra.Value = ra.Value ' преобразуем формулы в значения ra.Replace "0", vbNullString, xlWhole ' очищаем ячейки с нулями On Error Resume Next ra.SpecialCells(xlCellTypeBlanks).E ntireRow.Delete ' удаляем строки, которые были с нулями sh.UsedRange.Value = sh.UsedRange.Value ' преобразуем формулы в значения на всем листе End Sub Мне необходимо сначала преобразовать все ячейки с формулами на листе в значения, а потом работать с диапазоном по удалению строк с нулевым значением. Куда мне переместить строчку? sh.UsedRange.Value = sh.UsedRange.Value ' преобразуем формулы в значения на всем листе И тогда, я так понимаю, строчка ra.Value = ra.Value ' преобразуем формулы в значения не нужна? |
26.01.2012, 19:25 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
А Вы попробовать боитесь?
Думаю, вместо ra.Value = ra.Value нужно поставить строку sh.UsedRange.Value = sh.UsedRange.Value а в конце её убрать - уже лишняя.
webmoney: E265281470651 Z422237915069 R418926282008
|
26.01.2012, 19:30 | #3 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Большой привет профессионалам!
Вот, как раз вместо той строчечки и не пытался. Я думал, что ее в начало надо поставить, а потом уже определять диапазон. Понятное дело, что в конце она уже не нужна. Сейчас попробую. |
26.01.2012, 19:33 | #4 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
Код:
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
26.01.2012, 19:35 | #5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну можно и в начало, после
Set sh = ActiveSheet Но строка ra.Value = ra.Value тогда тоже лишняя. Т.е. одну переносим выше, другую стираем - так проще одну другой заменяем и всё
webmoney: E265281470651 Z422237915069 R418926282008
|
26.01.2012, 19:38 | #6 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Не сработало. Формулы преобразовались в значения, а всего остального, то есть удаления строк с нулевым значением в столбце W, не произошло.
|
26.01.2012, 19:43 | #7 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
Не сработало что?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
26.01.2012, 19:45 | #8 | |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Цитата:
|
|
26.01.2012, 19:49 | #9 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
Давайте Ваш пример, где не сработало.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
26.01.2012, 20:07 | #10 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Прикрепил. Мой код в 12 модуле, Ваш в 14. Тут вот еще какое дело. До этой операции работает макрос из 13 модуля (собирает данные с листов в папке). Может преобразование формул в значения туда поставить, в конце? И объединить в один с сохранением в отдельный файл с именем-текущей датой?
И еще заодно такой вопрос, раз уж файл приложил. В столбце T часы. Как сделать, чтобы удаление строк происходило не только при нулевом значении в столбце W, но и если часы попадают в диапазон от 0 часов до 9 часов (нерабочее время, простой все равно)? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление всех строк из БД по значению из колонки | artemavd | Общие вопросы Delphi | 8 | 18.09.2011 12:24 |
Подсчет ячеек одновременно по цвету и значению | bud-dy | Microsoft Office Excel | 7 | 17.03.2011 14:43 |
выделение ячеек, сходных по значению соседнего листа | dedelev | Microsoft Office Excel | 2 | 02.03.2011 13:22 |
Удаление строк в массиве по значению в строке | ZanderBlack1 | Microsoft Office Excel | 1 | 19.01.2011 16:11 |
Удаление “нулевых” ячеек из диапазона | Kozlov_OV | Microsoft Office Excel | 2 | 07.07.2010 17:46 |