3

Я пытаюсь выяснить, как удалить строку в Excel 2013, где содержимое ячейки начинается с цифры.

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

Любые рекомендации / советы будут с благодарностью приняты!

Итак, я создал немного кода VBA, который, кажется, работает на одном листе:

Sub Macro_01()
Dim L As Long, i As Long
L = Cells(Rows.Count, "F").End(xlUp).Row
For i = L To 1 Step -1
    If Left(Cells(i, "F"), 1) Like "[0-9]" Or Cells(i, "F") = "" Then
        Rows(i).Delete
    End If
Next
End Sub

Я пытаюсь понять, как заставить это работать на всех 284 листах в рабочей тетради. Я пробовал Do/Loop, но он работает бесконечно (и перестает отвечать). Поскольку я знаю, сколько листов, нужна ли простая команда для ввода кода?

2 ответа2

0

Спасибо за вашу помощь, думаю, я решил это:

Sub Macro_01()
ActiveSheet.Next.Select
Do
Dim L As Long, i As Long
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
L = Cells(Rows.Count, "F").End(xlUp).Row
For i = L To 1 Step -1
If Left(Cells(i, "F"), 1) Like "[0-9]" Or Cells(i, "F") = "" Then
Rows(i).Delete
End If
Next
Next ws
If ActiveSheet.Index <> Sheets.Count Then
ActiveSheet.Next.Select
Else
Exit Do
End If
Loop
End Sub
0

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

Sub Macro_01()

Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

Dim L As Long, i As Long
Dim ws      As Worksheet

For Each ws In ActiveWorkbook.Worksheets
    L = .Cells(Rows.Count, "F").End(xlUp).Row
    For i = L To 1 Step -1
        If Left(.Cells(i, "F"), 1) Like "[0-9]" Or .Cells(i, "F") = "" Then
            .Rows(i).Delete
        End If
    Next
Next ws

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Просто зациклите каждый лист, убедившись, что сбросили переменную последней строки. Затем поворот расчета / обновления экрана до конца. Обратите внимание, если у вас есть более 200 листов, это может занять некоторое время.

Наконец, позаботьтесь о том, чтобы сначала выполнить это на копии ваших данных, поскольку, как вы знаете, вы не можете отменить макрос.

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