Я хочу удалить определенные ячейки во всех столбцах на моем листе, если они содержат 0, а затем сдвинуть все данные вверх.Удаление ячеек, если они содержат 0
Я нашел эту формулу в другом потоке, и по какой-то причине она работала только для одного столбца (столбец p) и работала только на половину этого.
Надеюсь, вам помогут эксперты.
Option Explicit
Sub Sample()
Dim row_index As Long, lRow As Long, i As Long
Dim ws As Worksheet
Dim delRange As Range
'~~> Change this to the relevant worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
row_index = 7
Application.ScreenUpdating = False
With ws
lRow = .Range("P" & .Rows.Count).End(xlUp).Row
For i = row_index To lRow
If .Range("P" & i).Value <> "" And .Range("P" & i).Value = 0 Then
If delRange Is Nothing Then
Set delRange = .Range("P" & i)
Else
Set delRange = Union(delRange, .Range("P" & i))
End If
End If
Next
End With
If Not delRange Is Nothing Then delRange.Delete shift:=xlUp
Application.ScreenUpdating = True
End Sub
Чтобы уточнить, я не хочу, чтобы удалить все строки или столбцы, я просто хочу, чтобы удалить фактическую ячейку, а затем перенести их – Jmacneil13