programing

셀 값을 기준으로 행을 삭제하는 방법

i4 2023. 6. 10. 08:19
반응형

셀 값을 기준으로 행을 삭제하는 방법

워크시트가 있습니다. 셀 값을 기준으로 행을 삭제해야 합니다.

확인할 셀이 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

반응형