
Excel 2013에서 셀 내용이 숫자로 시작하는 행을 삭제하는 방법을 알아보려고 합니다.
EG HI 열에는 여러 항목이 있으며 일부는 문자로 시작하고 일부는 숫자로 시작합니다. 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를 시도했지만 끝없이 실행됩니다(응답이 중지됨). 시트가 몇 개인지 알고 있으므로 코드에 입력해야 하는 간단한 명령이 있나요?
답변1
어떻게 작동하나요? (귀하가 게시한 코드가 예상대로 작동하고 있다고 가정하고 다음에서 실행하면 됩니다.모두시트.)
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장 이상의 시트가 있는 경우 실제로 시간이 걸릴 수 있습니다.
마지막으로, 매크로를 실행 취소할 수 없다는 점을 아시다시피 먼저 데이터 복사본에서 실행해 보시기 바랍니다.
답변2
지금까지 도움을 주셔서 감사합니다. 문제가 해결된 것 같습니다.
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