셀 값을 기준으로 행을 삭제하는 방법
워크시트가 있습니다. 셀 값을 기준으로 행을 삭제해야 합니다.
확인할 셀이 A열에 있습니다.
셀에 "-"가 포함된 경우 ..행 삭제
방법을 찾을 수가 없어요.워크북을 열고 모든 내용을 다른 워크북에 복사한 다음 전체 행과 열을 삭제하지만 셀 값을 기준으로 제거해야 하는 특정 행이 있습니다.
여기에 도움이 필요합니다.
갱신하다
내가 가지고 있는 데이터의 샘플
가장 쉬운 방법은 필터를 사용하는 것입니다.
"-" 및 복사/붙여넣기가 없는 A열의 셀을 필터링하거나 "-"가 있는 모든 셀에 대해 (내가 선호하는 방법으로) 필터를 선택한 후 모두 삭제할 수 있습니다. 필터를 제거하면 필요한 항목이 표시됩니다.
이게 도움이 되길 바랍니다.
스크린샷은 매우 유용했습니다. 다음 코드가 작동합니다(데이터가 A1 시작 열 A에 있다고 가정).
Sub RemoveRows()
Dim i As Long
i = 1
Do While i <= ThisWorkbook.ActiveSheet.Range("A1").CurrentRegion.Rows.Count
If InStr(1, ThisWorkbook.ActiveSheet.Cells(i, 1).Text, "-", vbTextCompare) > 0 Then
ThisWorkbook.ActiveSheet.Cells(i, 1).EntireRow.Delete
Else
i = i + 1
End If
Loop
End Sub
샘플 파일 공유: https://www.dropbox.com/s/2vhq6vw7ov7ssya/RemoweDashRows.xlsm
다음과 같은 공식을 새 열에 복사할 수 있습니다.
=IF(ISNUMBER(FIND("-",A1)),1,0)
그런 다음 해당 열에서 정렬하고 값이 1인 모든 행을 강조 표시한 후 삭제합니다.
특정 셀 값을 기준으로 행을 삭제하려는 경우.10000개의 행이 포함된 파일과 NULL 값을 가진 필드가 있고 이 값을 기준으로 모든 행과 레코드를 삭제하려고 한다고 가정합니다.
여기 몇 가지 간단한 팁이 있습니다.먼저 Find Replace(바꾸기 찾기) 대화상자를 열고 Replace(바꾸기) 탭에서 NULL 값이 포함된 모든 셀을 Blank(공백)로 만든 다음 F5를 누르고 Blank(공백) 옵션을 선택합니다. 이제 활성 시트에서 마우스 오른쪽 버튼을 클릭하고 delete(삭제)를 선택한 다음 전체 행에 대한 옵션을 선택합니다.
NULL을 포함하는 단어의 셀 값을 기준으로 모든 행을 삭제합니다.
파일 크기가 너무 크지 않은 경우 항상 -이 있는 열을 기준으로 정렬할 수 있으며 -이 열이 모두 모인 후에는 강조 표시하고 삭제하기만 하면 됩니다.그런 다음 원하는 항목으로 다시 정렬합니다.
범위 내의 각 셀을 루프하여 사용할 수 있습니다.InStr
셀에 문자열이 포함되어 있는지 확인하는 기능(사용자의 경우), 하이픈.
Sub DeleteRowsWithHyphen()
Dim rng As Range
For Each rng In Range("A2:A10") 'Range of values to loop through
If InStr(1, rng.Value, "-") > 0 Then 'InStr returns an integer of the position, if above 0 - It contains the string
rng.Delete
End If
Next rng
End Sub
이것은 다음과 같은 기능을 기반으로 할 수 있는 자동 필터 매크로입니다.
Selection.AutoFilter
ActiveSheet.Range("$A$1:$A$10").AutoFilter Field:=1, Criteria1:="=*-*", Operator:=xlAnd
Selection.AutoFilter
이 자동 필터 기능을 사용하여 일치하는 행을 삭제합니다.
Public Sub FindDelete(sCol As String, vSearch As Variant)
'Simple find and Delete
Dim lLastRow As Integer
Dim rng As Range
Dim rngDelete As Range
Range(sCol & 1).Select
[2:2].Insert
Range(sCol & 2) = "temp"
With ActiveSheet
.usedrange
lLastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
Set rng = Range(sCol & 2, Cells(lLastRow, sCol))
rng.AutoFilter Field:=1, Criteria1:=vSearch, Operator:=xlAnd
Set rngDelete = rng.SpecialCells(xlCellTypeVisible)
rng.AutoFilter
rngDelete.EntireRow.Delete
.usedrange
End With
End Sub
다음과 같이 부릅니다.
call FindDelete "A", "=*-*"
덕분에 일을 많이 아낄 수 있었습니다.행운을 빕니다.
언급URL : https://stackoverflow.com/questions/14613609/how-to-delete-row-based-on-cell-value
'programing' 카테고리의 다른 글
Ruby에서 해시의 모든 값 변경 (0) | 2023.06.15 |
---|---|
Wordpress 블록 테마에 사용자 지정 블록 추가(플러그인을 사용하지 않음) (0) | 2023.06.15 |
스토리보드의 표 머리글 보기 (0) | 2023.06.10 |
형식 스크립트에서 개인 메서드를 농담으로 테스트 (0) | 2023.06.10 |
dplyr이 여러 열 또는 복합 키에 조인할 수 있습니까? (0) | 2023.06.10 |