Удалить строку, если ячейка пуста - PullRequest
0 голосов
/ 24 января 2019

В моем рабочем листе два листа: Sheet1 и Sheet2.Лист1 позволяет пользователю указать местоположение файла, а затем попросить последний выбрать диапазон и затем импортировать данные на лист2.Тем не менее, есть 2 пустых ячейки (которые, очевидно, могут быть удалены вручную), но я пытаюсь автоматизировать процесс, но код ниже говорит мне, что ячейки не были найдены.

Sum DeleteRows()
Dim SrchNom
Dim Tb as Range

'we get sheet on which data has been copied

Set Tb = Sheet1.Range("E9")

Set SrchNom = Worksheets(Tb.Value).Range("J1", Worksheets(Tb.Value).Range("J1048576").End(xlUp))

SrchNom.SpecialCells(xlCellTypeBlanks).EntireRow.Delete

End sub

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

Ответы [ 2 ]

0 голосов
/ 24 января 2019

вы можете использовать этот код, просто замените (.Rows (строка)) на ваш диапазон

Public Sub deleteRows()

Dim wks As Excel.Worksheet
Dim rng As Excel.Range
Dim row As Long
Dim lastRow As Long

Set wks = Excel.ActiveSheet
lastRow = Range("A" & Rows.count).End(xlUp).row

With wks
    For row = 1 To lastRow
        If Application.WorksheetFunction.CountA(.Rows(row)) = 0 Then
            If rng Is Nothing Then
                Set rng = .Rows(row)
            Else
                Set rng = Excel.Union(rng, .Rows(row))
            End If
        End If
    Next row
End With

'In order to avoid Run-time error check if [rng] range is not empty, before removing it.
If Not rng Is Nothing Then
    Call rng.EntireRow.Delete
End If
End Sub
0 голосов
/ 24 января 2019

Попробуйте:

Sub DeleteRows()
    Worksheets(Sheets(1).Cells(9, 5).Value).Columns("J").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Если вы можете столкнуться с тем, что пустые ячейки не являются пустыми из-за новой строки, пробелов или комбинации, вам может быть интересен ответ на этот вопрос.

Возможно, это так, также вы знаете, что вы можете выполнять итерацию в обратном направлении по диапазону, удаляя все строки, в которых столбец J может удовлетворять определенным условиям, возможно Chr(10) или Chr(32).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...