Excel : 특정 열의 셀이 비어 있으면 행을 삭제 하시겠습니까? 나는 Excel의

나는 Excel의 완전한 초보자이므로 이것이 쉬운 일이라면 실례합니다. 많은 옵션을 살펴 보았지만 필요한 것을 찾을 수 없었습니다.

기본적으로 C 열에 값이 포함되지 않은 모든 행을 삭제하고 싶습니다. 어떻게해야합니까?

5000 + 제품에 대해 지금 수동 으로이 작업을 수행하고 있으며 나를 미치게합니다.



답변

셀이 실제로 비어 있으면이 작업을 매우 빠르게 수행 할 수 있습니다 SpecialCells

설명서

  • C 열을 선택하십시오
  • 을 누른 F5다음Special
  • 를 확인한 Blanks다음 OK(아래 그림의이 단계 참조)
  • 현재 선택된 행을 삭제합니다 (예 : 선택> 셀 삭제 … > 전체 행 또는 리본을 통해 마우스 오른쪽 단추를 클릭 하십시오 (두 번째 스크린 샷 참조)).

VBA

Sub QuickCull()
    On Error Resume Next
    Columns("C").SpecialCells(xlBlanks).EntireRow.Delete
End Sub

특별 메뉴로 이동-> 공백 메뉴를 보여주는 스크린 샷
리본을 사용하여 선택에서 전체 행을 삭제하는 방법을 보여주는 스크린 샷


답변

쉬운 수동 방법은 다음과 같습니다.

  1. Auto Filter시트에를 적용하십시오
  2. C빈 칸에 필터
  3. 보이는 행을 모두 선택하십시오.
  4. 행 삭제
  5. 필터 제거

필요한 경우 VBA를 사용하여이 프로세스를 자동화 할 수 있습니다. 매크로 레코더를 실행하여 시작해보십시오.


답변

다른 셀에 다른 수식이 없다고 가정하면 가장 쉬운 방법은 C 열로 모든 것을 정렬 한 다음 C 열에 공백이있는 모든 행을 삭제하는 것입니다 (정렬 함수는 빈 값을 넣습니다) 파일 상단의 C 열).

요약해서 말하자면:

  • “1”로 표시된 셀 위의 접힌 종이 셀을 클릭하고 “A”로 표시된 셀의 왼쪽을 클릭하십시오 (모두 강조 표시).
  • 데이터를 클릭 한 다음 정렬
  • C 열을 기준으로 정렬하고 가장 작은 값을 먼저 설정
  • C 열의 값으로 첫 번째 행을 칠 때까지 행을 강조 표시하고 강조 표시된 모든 항목을 삭제하십시오.

답변

이 작동합니다.

Columns("C:C").Select
Set rngRange = Selection.CurrentRegion
lngNumRows = rngRange.Rows.Count
lngFirstRow = rngRange.Row
lngLastRow = lngFirstRow + lngNumRows - 1
lngCompareColumn = ActiveCell.Column
For lngCurrentRow = lngLastRow To lngFirstRow Step -1
If (Cells(lngCurrentRow, lngCompareColumn).Text = "") Then _
Rows(lngCurrentRow).Delete
Next lngCurrentRow


답변

이 코드를 시트 모듈에 넣을 수 있습니다 (오른쪽 마우스 클릭 시트 탭 및 “코드보기”를 선택하십시오).

Sub Delete_Blank_Rows()


'Deletes the entire row within the selection if the ENTIRE row contains no data.

'We use Long in case they have over 32,767 rows selected.

Dim i As Long
Dim LastRow As Integer

'We turn off calculation and screenupdating to speed up the macro.

 With Application
     .Calculation = xlCalculationManual
     .ScreenUpdating = False

     'Reduce the work on the calc and define the range

     LastRow = Range("A" & Rows.Count).End(xlUp).Row
     Range("A2:A" & LastRow).Select

     'We work backwards because we are deleting rows.

     For i = Selection.Rows.Count To 1 Step -1
          If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
              Selection.Rows(i).EntireRow.Delete
          End If
     Next i

    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With

End Sub


답변