Прокрутите все ячейки и удалите любую нулевую ячейку (сдвиньтесь вверх)

Похоже, что это должна быть довольно простая задача, но я не могу заставить ее работать. Мне просто нужен простой макрос, который будет проходить через все ячейки моего рабочего листа. Если ячейка равна нулю (или пустой для ударов), то просто удалите ее, перемещая другие ячейки в столбце вверх один.

Я нигде не пытался сделать это на весь документ, поэтому я попытался сделать это в одном столбце:

Sub Macro6() ' ' Macro6 Macro ' ' Keyboard Shortcut: Ctrl+q ' For i = 81 To 1 Step -1 If Range("A" & i) = "0" Then Range("A" & i).Delete Next i End Sub 

Я не хочу удалять строки, только отдельные ячейки, если они имеют значение 0 .

Но, по-видимому, все равно ничего не происходит.

Выберите диапазон для удаления пробелов внутри. Главная> Редактирование – Поиск и выбор, Переход к специальному, Бланки, ОК, выбор внутри массива, Удалить …, Сдвинуть ячейки вверх, ОК.

Чтобы применить один и тот же процесс к ячейкам, содержащим 0 выберите диапазон, чтобы удалить 0 с внутри и начать (т.е. до выше), заменив их ничем:

Домашняя страница> Редактирование, поиск и выбор, введите 0 в Find what :, проверьте соответствие всего содержимого ячейки и убедитесь, что Replace: пуст, замените все.

Этот маленький макрос удалит как пробелы, так и нули:

 Sub dural() Dim rKill As Range, r As Range Set rKill = Nothing For Each r In ActiveSheet.UsedRange If r.Value = 0 Or r.Value = "" Then If rKill Is Nothing Then Set rKill = r Else Set rKill = Union(rKill, r) End If End If Next If rKill Is Nothing Then Else rKill.Delete Shift:=xlUp End If End Sub 

Как отмечали pnuts , это может быть немного медленным. Следующие могут быть немного быстрее:

 Sub dural2() With Cells .Replace "0", "" .SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp End With End Sub 
  • Как сохранить файл Excel без предупреждения формата при открытии, используя C # и Excel 2010
  • выберите определенный слайд из презентации ppt и вставьте таблицу excel
  • Добавление строк данных в таблицу SQL
  • Метод «Добавить» объекта
  • Excel не будет открывать / запускать VSTO AddIn при запуске в режиме отладки Visual Studio 2010
  • Экспорт в Excel, работающий локально, но не при развертывании через IIS
  • Не удалось убить процессы excel
  • Обновление листа Excel с помощью VB.net
  • Проблемы с использованием Excel Interop в SSIS
  • Как включить инструмент Power Editor для редактора XML-пакетов для Visual Studio
  • Ошибка при создании excel из C #
  • Interesting Posts

    Как визуализировать SpreadsheetML в Excel, учитывая только Sheet1.xml

    Excel VBA: копировать множество столбцов

    Формула Excel TEXT не конвертирует 'yyyy' в год

    Экспорт данных таблицы Mysql в Excel через PHP: данные не отображаются должным образом в Excel

    Добавить дополнительный текст в ячейку с текстом в противном случае оставить пустым

    Очистить Содержание незащищенного определенного диапазона в защищенном листе

    Есть ли простой способ скопировать ActiveSheets .PageSetup?

    Подключение PowerPivot к базе данных PostgreSQL

    Установить макрос VBA для Excel для запуска ряда линейных уравнений, взяв переменную из нескольких строк?

    Стратегия для Excel Formula или VBA для этого.

    Получение максимального количества заполненных ячеек с помощью vb.net

    Импорт нескольких текстовых файлов в Excel

    Если формула игнорирует нули и использует значение перед нулями, если нули найдены

    Импорт данных из двух открытых книг с именами переменных

    VBA Сортировка AZ на одной колонке

    Давайте будем гением компьютера.