Есть ли быстрый способ удалить 0 в нескольких ячейках по столбцам и строкам? Я не просто хочу удалить 0, но я также хочу сместить значения вверх после того, как 0 были удалены.

Я добавил пример данных ниже. Там около 100 строк и столбцов.

Column 1 Column 2 Column 3
0        data3    0
data1    0        data5      
data2    data4    0

Идеальное состояние после удаления должно быть:

Column 1 Column 2 Column 3
data1    data3    data 5
data2    data4            

Мне нужно очистить данные, чтобы я мог использовать их для сравнения. Текущий метод, о котором я думал, это просто игнорировать 0, добавив оператор IF, чтобы игнорировать нули, когда я делаю сравнение.

1 ответ1

0

Попробуйте этот короткий макрос:

Sub newbie()
    Dim r As Range
    Dim nLastColumn As Long
    Dim nFirstColumn As Long
    Dim N As Long, i As Long, j As Long

    ActiveSheet.UsedRange
    Set r = ActiveSheet.UsedRange

    nLastColumn = r.Columns.Count + r.Column - 1
    nFirstColumn = r.Column

    For i = nFirstColumn To nLastColumn
        N = Cells(Rows.Count, i).End(xlUp).Row
        For j = N To 1 Step -1
            If Cells(j, i).Value = 0 Then
                Cells(j, i).Delete Shift:=xlUp
            End If
        Next j
    Next i
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .