2013-06-12 3 views
0

Excel VBA에 익숙하지 않아 비슷한 질문을 찾지 못했지만 표준 질문 일 수 있습니다.동일하면 열의 마지막 값을 제거하십시오.

많은 행 K가 비어 있거나 동일한 행 R (이 값은 65000보다 작음)에서 끝납니다. (정렬되지 않은) 비어 있지 않은 열의 대부분의 경우 마지막 r 행 (행 R-r + 1, R-r + 2, R-r + 3, ... R)은 동일한 값을 갖습니다. 그런 다음 마지막 r-1 행의 값을 삭제하고 R-r + 1 행의 값을 유지하려고합니다. 열 (K)의 입력은 매크로 실행 후 다음

4 
3 
3 
8 
4 
8 
8 
8 
8 

경우 출력

이다 예컨대

find K and R by determining range of sheet 
for k=1:K 
    if cell(R,k)<>empty 
     r=1; 
     while cell(R-r,k)==cell(R,k) 
      r=r+1; 
     end 
     cell(R-r+2,k) = '', cell(R-r+3,k) = '', ..., cell(R,k) = ''; 
    end 
end 

: 그래서 엑셀 VBA의 다음 "원시"코드를 삽입 할

4 
3 
3 
8 
4 
8 

감사

아마도

답변

0

:

Sub ColumnCleaner() 
    Dim col As Range, K As Long 
    Dim cl As Range, N As Long, NN As Long 
    Dim wf As WorksheetFunction 
    Set wf = Application.WorksheetFunction 
    For Each col In ActiveSheet.UsedRange.Columns 
     K = col.Column 
     If wf.CountA(col) <> 0 Then 
      NN = Cells(Rows.Count, K).End(xlUp).Row 
      For N = NN To 2 Step -1 
       If Cells(N, K).Value = Cells(N - 1, K).Value Then 
        Cells(N, K).Clear 
       Else 
        Exit For 
       End If 
      Next N 
     End If 
    Next col 
End Sub 
관련 문제