에 엑셀 행 데이터를 삭제 둘 중 하나만 갖고 싶습니다. 어떻게 들으, 다른 하나를 제거는 어떻게 다음과 같은 엑셀 데이터가 이러한 경우
답변
내가 테스트하고 다음과 같이 코드를 수정할 수 :
Option Explicit
Sub MAIN()
Dim dataRng As Range, col As Range, cell As Range
With Worksheets("myWorksheetName") '<--| change "myWorksheetName" to your actual worksheet name
With .UsedRange
Set dataRng = .Cells
With .Offset(1, .Columns.Count + 1).Resize(.Columns.Count, .Rows.Count)
.Value = Application.Transpose(dataRng.Value)
For Each col In .Columns
col.Sort key1:=col.Cells(1, 1), order1:=xlAscending, Header:=xlNo
col.Cells(1, 1).Offset(-1) = Replace("|" & Join(Application.Transpose(col.Value), "|") & "|", "||", "")
Next col
For Each cell In .Rows(1).Offset(-1, 1).Resize(, .Columns.Count - 1).Cells
If WorksheetFunction.CountIf(.Rows(1).Offset(-1).Resize(, cell.Column - .Columns(1).Column), cell.Value) > 0 Then .Offset(, -1).Cells(cell.Column - .Columns(1).Column, 1) = 1
Next cell
.Offset(-1).Resize(.Rows.Count + 1).ClearContents
End With
With .Resize(, .Columns.Count + 1)
.AutoFilter Field:=.Columns.Count, Criteria1:=1
.Resize(, 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
End With
End With
End Sub
스크립트가 7 행으로 실행되면"error 1004 "와 같은 오류가 발생합니다. – RayYu
줄 번호가 없습니다. 오류 번호 및 설명과 함께 오류가 발생하는 줄을 입력하십시오. – user3598756
이 줄은 ".Offset (1, .Counts.Count + 1) .Resize (.Columns.Count, .Rows.Count)"오류 "오류 1004"응용 프로그램 정의 또는 개체 정의 오류 "", 워크 시트 이름을 바 꾸었습니다 – RayYu
그래서, 당신은 (즉, 임의의 순서로 나타날 수 있습니다) 중복 된 정보가 행을 제거해야합니까? 어떤 행을 지키는 것이 중요합니까? 그렇다면 어느 것이 머물러야하고 어떤 것이 어느 것을 가져야하는지 어떻게 알 수 있습니까? (♪♪ 나에게 알려줘 ♪♪ ♫) – BruceWayne
@BruceWayne 머물면 문제가 되겠지만, 간다면 ... 어떤 몸에도 땅콩이있어. 댕이 내 따옴표를 섞어. –
시트에 약 2W + 행이 포함될 수 있습니다. "AB"또는 "BA"에 관계없이 한 행만 유지하려는 경우 "AB"---- "BA"또는 " LN "----"NL ". VBA를 사용하여 거래를 시도했는데 – RayYu