셀에 문자열 X가 포함되어 있는 경우 행 전체를 삭제합니다.
웹 사이트 열 셀에 단어가 들어 있는 모든 행을 삭제하는 방법(가능한 경우 셀을 위로 이동)을 생각해 내려고 합니다.none테이블에는 5000개 이상의 레코드가 포함되어 있기 때문에 시간을 크게 절약할 수 있습니다.
제안해 주셔서 감사합니다.
이것은 반드시 VBA 태스크는 아닙니다.이 특정 태스크는 Auto 필터와 가장 쉽게 공유됩니다.
1. 자동 필터 삽입 (Excel 2010에서는 홈 클릭 -> (편집) 정렬 및 필터 -> 필터)
2. '웹사이트' 열 필터
3. '없음'으로 표시한 후 삭제합니다.
4. 필터 클리어
네, VBA에 대해서는 알고 있습니다만, 일시적 일괄 삭제가 필요한 경우는, 다음의 Excel 기능을 사용할 수 있습니다.http://blog.contextures.com/archives/2010/06/21/fast-way-to-find-and-delete-excel-rows/ 이 기능을 사용하면, 모든 유저에게 도움이 됩니다.
문자열 "paper"를 찾는 예:
- [검색 및 바꾸기] 대화 상자의 [검색 내용] 상자에 "종이"를 입력합니다.
- 모두 찾기를 클릭하여 "종이"가 있는 셀 목록을 확인합니다.
- 목록에서 항목을 선택하고 Ctrl+A를 눌러 전체 목록을 선택하고 워크시트의 모든 "종이" 셀을 선택합니다.
- 리본의 홈 탭에서 삭제를 누른 다음 시트 행 삭제를 누르십시오.
"개발자 탭"에서 "비주얼 기본"으로 이동하여 모듈을 작성합니다.다음을 복사 붙여넣습니다.원하는 것에 따라 코드를 변경하십시오.그런 다음 모듈을 실행합니다.
Sub sbDelete_Rows_IF_Cell_Contains_String_Text_Value()
Dim lRow As Long
Dim iCntr As Long
lRow = 390
For iCntr = lRow To 1 Step -1
If Cells(iCntr, 5).Value = "none" Then
Rows(iCntr).Delete
End If
Next
End Sub
lRow : 현재 파일에 있는 행의 수를 입력합니다.
"If"의 숫자 "5"는 다섯 번째(E) 열에 대한 것입니다.
@MBK님의 답변에 추가하겠습니다.@MBK의 답변이 비슷한 문제를 해결하는 데 매우 도움이 된다고 생각했지만, @MBK가 특정
컬럼을 필터링하는 방법을 스크린샷으로 첨부하는 것이 좋습니다.
이것은 다른 코멘트에서 언급되었지만, 이와 같은 것을 시도해 볼 수 있습니다.
Sub FilterAndDelete()
Application.DisplayAlerts = False
With Sheet1 'Change this to your sheet name
.AutoFilterMode = False
.Range("A3:K3").AutoFilter
.Range("A3:K3").AutoFilter Field:=5, Criteria1:="none"
.UsedRange.Offset(1, 0).Resize(ActiveSheet.UsedRange.Rows.Count - 1).Rows.Delete
End With
Application.DisplayAlerts = True
End Sub
아직 테스트하지 않았고 메모리에서 가져온 것이기 때문에 약간의 조정이 필요할 수 있지만 수천 개의 행을 반복하지 않고 작업을 완료할 수 있습니다.11줄 제거해서UsedRange또는 오프셋을 1 행이 아닌2 행으로 변경합니다..Offset(1,0).
보통 제가 하기 전에.Delete매크로를 실행합니다..Select[삭제(Delete)]대신 올바른 범위가 삭제되는지 확인할 수 있습니다.이것은 적절한 범위가 삭제되고 있는지 확인하는 데 도움이 될 수 있습니다.
이거 드셔보세요...
Dim r as Range
Dim x as Integer
For x = 5000 to 4 step -1 '---> or change as you want //Thanx 4 KazJaw
set r = range("E" & format(x))
if ucase(r.Value) = "NONE" then
Rows(x).EntireRow.Delete
end if
Next
- 1행과 2행을 삭제하여 머리글이 1행에 오도록 합니다.
이것을 매크로에 입력해 주세요(75000 행을 통해 확인할 수 있습니다.필요에 따라 숫자를 낮출 수 있습니다).
Columns("E:E").Select Selection.AutoFilter ActiveSheet.Range("$E$1:$E$75000").AutoFilter Field:=1, Criteria1:="none" Range("E2:E75000").SpecialCells(xlCellTypeVisible).Select Selection.EntireRow.Delete ActiveSheet.Cells.EntireRow.Hidden = False ActiveSheet.Range("$E$1:$E$75000").AutoFilter Field:=1 Columns("E:E").Select Selection.AutoFilter Range("E2").Select Range("A1").Select
언급URL : https://stackoverflow.com/questions/17606045/delete-entire-row-if-cell-contains-the-string-x
'programing' 카테고리의 다른 글
| DataTemplate에서 상위 DataContext에 액세스합니다. (0) | 2023.04.19 |
|---|---|
| 어떤 WPF 책을 추천하시겠습니까? (0) | 2023.04.19 |
| WPF에서 비활성화 버튼을 선택하시겠습니까? (0) | 2023.04.19 |
| UIButton 제목 텍스트 색상은 어떻게 설정하나요? (0) | 2023.04.19 |
| 팬더: 병합된 세포를 사용하여 Excel 읽기 (0) | 2023.04.19 |
