2014-01-14 4 views
-1

열 A를 통해 검색하는 VBA 매크로를 만들려고 할 때마다 동일한 열 (및 인접한 열)에서 2 개 중 하나를 삭제하고 위로 이동하는 2 개의 셀을 찾을 때마다 만듭니다. 나는 그것을 A 열에 머물고 싶다. 그리고 중복이 생길 때마다 그것을 삭제하기 위해 인접 해있다. 꽤 많이 나는 정보과 같이 교대로 엑셀 시트를 가지고 :중복되면 인접 셀을 삭제 하시겠습니까?

B

B

그러나 나는 종종이

는 A 쓰러진 나무에 충돌

B

사람들이 개 B 형의 내가 그것을 자동으로 명확 원하는 최대에 세포를 이동,하지만 난 그것에 대해 이동하는 방법을 모르는 누구인지되어

B

B . 제안 사항이 있으십니까?

편집 : 나는 내 자신의 질문을 해결했다. 대답은 아래에 있지만 여기에 나와있는 것처럼 다른 사람들을 돕는 것이 다시 나와 있습니다.

여러분을 생각 나게하십시오. 나는 이것을 얻었다. 나는 필터와 간단한 공식을 사용하는 매크로를 기록했다. B 열에서는 다음과 같이 입력합니다. = IF (a1 = a2, "STOP", "") 그런 다음 복사하기 위해 아래로 드래그했습니다. 그런 다음 B 열을 필터링하여 "STOP"셀만 표시합니다. 그런 다음 그 세포들을 제거했습니다. 그 다음 나는 열 B를 모두 보여주기 위해 여과하지 않았다. 그런 다음 홈> 찾기 및 선택> 특별> 공백 선택으로 이동 한 다음 선택한 공백 위로 셀을 삭제하고 이동했습니다. 그런 다음 B 열 수식을 끌어 내 기록 된 매크로의 작동 루프를 만듭니다. Heres는 촬영이처럼 보이는 결국 무엇을 :

Sub DUPES() 

ActiveCell.FormulaR1C1 = "=IF(RC[-1]=R[1]C[-1],""DLT"","""")" 
Range("J2").Select 
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault 
Range("J2:J1000").Select 
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10, Criteria1:="<>" 
Range("I11:J11").Select 
Range(Selection, Selection.End(xlDown)).Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.ClearContents 
Range("A11").Select 
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10 
ActiveWindow.SmallScroll Down:=-42 
Columns("I:I").Select 
Selection.SpecialCells(xlCellTypeBlanks).Select 
Selection.Delete Shift:=xlUp 
Range("J2").Select 
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault 
Range("J2:J1000").Select 

Range("I2").Select 
End Sub 
+0

내가 노력했다. – Forbidden

+0

if sel.Offset (i) .Value = prev Then sel.Offset (i) .EntireRow.삭제 나는 또한 오프셋을 망쳐 봤지만, 나는이 종류의 것을 만드는 것을 정말로 잘하지 못한다. – Forbidden

답변

0

사람들을 괴롭히지 마십시오. 나는 이것을 얻었다. 나는 필터와 간단한 공식을 사용하는 매크로를 기록했다. B 열에서는 다음을 입력합니다. = IF (a1 = a2, "STOP", "") 그런 다음 복사하기 위해 아래로 드래그했습니다. 그런 다음 B 열을 필터링하여 "STOP"셀만 표시했습니다. 그런 다음 그 세포들을 제거했습니다. 그 다음 나는 모든 것을 보여주기 위해 B 열을 여과하지 않았다. 그런 다음 홈으로 이동> 찾기 및 선택> 특별> 공백 선택 그런 다음 선택한 공백을 삭제하고 셀을 이동했습니다. 그런 다음 B 열 수식을 끌어 내 기록 된 매크로의 작동 루프를 만듭니다. 녹음이처럼 보이는 결국 Heres는 무엇을 : 수동은 "다른"변수에 도달 할 때 하위 종료를 말하는 동안 중복을 제거하는 매크로를 기록

Sub DUPES() 

ActiveCell.FormulaR1C1 = "=IF(RC[-1]=R[1]C[-1],""DLT"","""")" 
Range("J2").Select 
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault 
Range("J2:J1000").Select 
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10, Criteria1:="<>" 
Range("I11:J11").Select 
Range(Selection, Selection.End(xlDown)).Select 
Range(Selection, Selection.End(xlDown)).Select 
Selection.ClearContents 
Range("A11").Select 
ActiveSheet.Range("$A$1:$L$500").AutoFilter Field:=10 
ActiveWindow.SmallScroll Down:=-42 
Columns("I:I").Select 
Selection.SpecialCells(xlCellTypeBlanks).Select 
Selection.Delete Shift:=xlUp 
Range("J2").Select 
Selection.AutoFill Destination:=Range("J2:J1000"), Type:=xlFillDefault 
Range("J2:J1000").Select 

Range("I2").Select 
End Sub 
0
sub removedup 
Columns("A:B").Select 
ActiveSheet.Range("$A$1:$B$8").RemoveDuplicates Columns:=1, Header:=xlYes 
end sub 

리본에서 엑셀 2007년 10월 13일에서 제거 중복 버튼이 있습니다 -하지만 당신은 VBA를 원하는대로 이것은 당신이 A1에서 열 헤더를 가지고 있다고 가정 b1

+0

그래, 그 버튼에 대해서 알았어. 미안하지만 나는 아주 분명하지 않았지만 나는 그것을 A 열에 머물고 싶었고, 중복이 생길 때마다 그것을 삭제하기 위해 인접 해 있었다. 이 반영하기 위하여 나의 OP를 편집하십시오. – Forbidden

+0

위의 더미 데이터로 A 열에 2 개 이상의 변수가 있습니까? – Will

+0

예 및 아니요 위의 더미를 사용하면 Excel 시트에 A에 대한 다양한 가능성이 있지만 B는 항상 동일합니다. – Forbidden

관련 문제