Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 39

Удалить пустые строки при условии пустой ячейки

02.09.2016, 17:51. Показов 7827. Ответов 18

Студворк — интернет-сервис помощи студентам
нужно записать макрос, который будет удалять всю строку при условии, что в ячейке В или С пусто, и так по всему документу.
Данные являются гиперссылками, периодически обновляются.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.09.2016, 17:51
Ответы с готовыми решениями:

Разбить ячейки и удалить образовавшиеся пустые ячейки
И снова я. В приложенном файле имеем в столбцах "Дата" и "Номер" содержимое. Нужно перебрать 3 строку и в каждом столбце с названием...

Удалить ячейки по условию (меньше 2 и пустые)
Как это водится : - свалилось на мою голову необходимость поработать с экселем и стандартными средствами тут не обойтись , и к сожалению...

Нужно удалить пустые ячейки из выбронного столбца
Пожалуйста, помогите. Я только учись писать макросы. Вот написала один, а он некоректно работает. Цель: нужно удалить пустые ячейки из...

18
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
04.09.2016, 00:55
e46,

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub Cleaning()
Application.ScreenUpdating = False
For s = 1 To ActiveWorkbook.Worksheets.Count
For i = Sheets(s).Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1
If Sheets(s).Cells(i, 2).Value = 0 Then Sheets(s).Rows(i).Delete Shift:=xlUp
Next
For i = Sheets(s).Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1
If Sheets(s).Cells(i, 3).Value = 0 Then Sheets(s).Rows(i).Delete Shift:=xlUp
Next
Next
Application.ScreenUpdating = True
End Sub
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
04.09.2016, 07:38

Не по теме:

нужно записать макрос
Пиши адрес - приду запишу!:D
Хоть бы мысли правильно излагал. Наверняка имелось в виду написать



Добавлено через 1 минуту
И, вообще-то, для макросов на сайте есть свой раздел
0
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 39
06.09.2016, 21:59  [ТС]
Narimanych
создала пустой макрос, закинула этот код + указала лист
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub A_B_C_D()
'
' A_B_C_D Макрос
'
Sheets("Лист1").Select
    Application.ScreenUpdating = False
        For s = 1 To ActiveWorkbook.Worksheets.Count
        For i = Sheets(s).Cells(Rows.Count, 2).End(xlUp).Row To 1 Step -1
            If Sheets(s).Cells(i, 2).Value = 0 Then Sheets(s).Rows(i).delete Shift:=xlUp
        Next
        For i = Sheets(s).Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1
            If Sheets(s).Cells(i, 3).Value = 0 Then Sheets(s).Rows(i).delete Shift:=xlUp
        Next
        Next
    Application.ScreenUpdating = True
End Sub
зависает при выполнении...

Добавлено через 1 час 30 минут
поясните, пожалуйста, код немного, суть так сказать

и нужно проверять столбик B, C и еще D
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
06.09.2016, 22:14
e46, А сколько в рабочем листе "Лист1" строк с гиперссылками ? и нет ли формул ?
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
06.09.2016, 23:23
e46,
прикрепите файл...
0
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 39
07.09.2016, 00:27  [ТС]
исходный файл "ATI GRUZ"
макрос нужен для второго екселя "все страны", ни в коем случае не для исходного. листы последующие удалила во втором екселе, что б меньше размер файла был.

нужно что б удалялась вся строка, пустых строк быть не должно...
Вложения
Тип файла: xlsx ATI GRUZ.xlsx (41.0 Кб, 8 просмотров)
Тип файла: xlsx РІСЃРµ страны.xlsx (12.4 Кб, 20 просмотров)
0
1703 / 190 / 19
Регистрация: 20.11.2011
Сообщений: 281
07.09.2016, 09:43
Там либо нужно все формулы менять на значения и только потом удалять, либо менять сами формулы, чтоб нулевые не выводились.
0
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 39
07.09.2016, 10:10  [ТС]
можно скопировать значения на лист 2, тогда получится выполнить исходное задание?
0
1703 / 190 / 19
Регистрация: 20.11.2011
Сообщений: 281
07.09.2016, 10:25
Да.
Visual Basic
1
2
3
4
5
6
7
8
9
Public Sub www()
    On Error Resume Next
    Sheets("Лист1").Copy after:=Sheets(Sheets.Count)
    With ActiveSheet
        .UsedRange.RowHeight = 12.5
        Intersect(.UsedRange, .[b:c]).Value = Intersect(.UsedRange, .[b:c]).Value
        Intersect(.UsedRange, .[b:c]).SpecialCells(2, 1).EntireRow.Delete
    End With
End Sub
1
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 39
07.09.2016, 12:06  [ТС]
kuklp,

как добавить еще столбец D? [b:c:d] - не получилось
и можно сделать без копирования на другой лист, а сохранение на этом же?
0
1703 / 190 / 19
Регистрация: 20.11.2011
Сообщений: 281
07.09.2016, 12:21
Зачем Вы целиком цитируете мне мой макрос? Зачем его вообще цитировать? Думаете я могу не знать, что сам же и написал?
[b:c:d] - не получилось
- надо [b:d]
можно сделать без копирования
закомментируйте строку:
Visual Basic
1
   Sheets("Лист1").Copy after:=Sheets(Sheets.Count)
1
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 39
07.09.2016, 14:44  [ТС]
kuklp,
цитировала не потому что Вы не знаете, хотела ответ именно Вам адресовать, я правила форума не сильно хорошо знаю, не часто тут

работает, но при этом удаляет информацию в строках в столбце С
Миниатюры
Удалить пустые строки при условии пустой ячейки   Удалить пустые строки при условии пустой ячейки  
0
1703 / 190 / 19
Регистрация: 20.11.2011
Сообщений: 281
07.09.2016, 21:14
А так?
Visual Basic
1
2
3
4
5
6
7
8
Public Sub www()
    On Error Resume Next
    With ActiveSheet
        .UsedRange.RowHeight = 12.5
        .UsedRange.Value = .UsedRange.Value
        Intersect(.UsedRange, .[b:d]).SpecialCells(2, 1).EntireRow.Delete
    End With
End Sub
1
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 39
08.09.2016, 12:05  [ТС]
kuklp,
со столбцами разобралась)
но никак не могу понять, почему не удаляется строка, если в стоблце d пусто, хотя прописала [b:d] в этом коде:

Visual Basic
1
2
3
4
5
6
7
8
9
Public Sub www()
    On Error Resume Next
    Sheets("Лист1").Copy after:=Sheets(Sheets.Count)
    With ActiveSheet
        .UsedRange.RowHeight = 12.5
        Intersect(.UsedRange, .[b:d]).Value = Intersect(.UsedRange, .[b:d]).Value
        Intersect(.UsedRange, .[b:d]).SpecialCells(2, 1).EntireRow.Delete
    End With
End Sub
0
1703 / 190 / 19
Регистрация: 20.11.2011
Сообщений: 281
08.09.2016, 12:12
Вы внимательно мой последний пост прочитайте. Там код отличается.
0
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 39
08.09.2016, 12:21  [ТС]
kuklp, видела, тот код даже из b и c не удаляет...
0
1703 / 190 / 19
Регистрация: 20.11.2011
Сообщений: 281
08.09.2016, 12:37
Лучший ответ Сообщение было отмечено e46 как решение

Решение

Кнопку нажать осилите?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Public Sub www()
    On Error Resume Next
    With ActiveSheet
        .UsedRange.RowHeight = 12.5
        .UsedRange.Value = .UsedRange.Value
        With Intersect(.UsedRange, .[b:d])
            .Replace 0, "", 1
            .SpecialCells(4).EntireRow.Delete
        End With
    End With
End Sub
Вложения
Тип файла: xls DelZeroStr.xls (72.0 Кб, 47 просмотров)
1
1 / 1 / 0
Регистрация: 22.02.2013
Сообщений: 39
08.09.2016, 14:35  [ТС]
kuklp, теперь все работает)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.09.2016, 14:35
Помогаю со студенческими работами здесь

Заливка ячейки при условии
Подскажите пожалуйста как через VBA сделать так чтобы при заполнении диапазона ячеек A1:N12 к примеру, когда вводишь значение в ячейку...

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

Поиск пустой ячейки в столбце и вставка строки над ней
добрый день! как заставить макрос в excel найти пустую ячейку в столбце А, вставить пустую строку НАД ней и скопировать туда формулы из...

Вычитание из ячейки числа указанного в TextBox, но при условии
Помогите пожалуйста. Значит страница №1 Excel заполнена: столбец А - наименования товаров, а столбец С - заполнен количеством товаров,...

Чтобы Excel при вставке не удалял пустые ячейки
копирую таблицу из интернета в ней есть иногда полностью пустые строчки Excel при вставке удаляет эти строки а они нужны для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru