2016-06-02 4 views
0

Excel에서 빈 열을 제거하고 아래 코드를보고 수정을 제안합니다. vba를 사용하여 Excel에서 전체 열을 삭제하는 방법

Sub RemoveEmptyCol() 
Dim lc As Double 
lc = Cells(1, Columns.Count).End(xlToLeft).Column 
For i = 1 To lc 
If Cells(1, i).Value = "" Then 
Cells(1, i).EntireColumn.Delete 
End If 
Next i 
End Sub 

나는 빈 열을 제거하기 위해 위의 코드를 시도했지만 단일 실행의 모든 ​​빈 컬럼을 제거하지 않았다.

+4

당신은 1 단계-1' –

+0

@ScottCraner에 내가 들어 뒤쪽 루프'= LC 필요 - 당신이 구체적으로 말씀 해주십시오 수 있습니다. 나는 너를 못 느끼 겠어. –

+0

이 'for i = 1 To lc'을'For i = lc To 1 step-1'으로 바꿉니다. –

답변

1

Scott Craner는 역순으로 반복됩니다. 특히 전체 행을 삭제하면 리소스가 많을 수 있으므로 많은 행의 데이터가있는 경우 처리 시간을 지원하는 중요한 정보를 추가 할 것입니다.

아래 코드는 실제 데이터가 저장된 행에 대해서만 빈 열을 제거합니다. 열 A에 전체 행 집합이 채워져 있다고 가정합니다. 그렇지 않으면 열이 무엇이든 상관없이 조정하십시오.

Sub RemoveEmptyCol() 

    Dim lc As Long, lr as Long 
    lc = Cells(1, Columns.Count).End(xlToLeft).Column 
    lr = Cells(Rows.Count,1).End(xlUp).Row 

    For i = lc To 1 Step -1 

     If Cells(1, i).Value = "" Then 

      Range(Cells(1, i),Cells(lr,i).Delete Shift:=xlToLeft 

     End If 

    Next i 

End Sub 
+1

그리고 A 열의 데이터가 다른 열보다 작 ​​으면 어떻게됩니까? 8P –

+0

좋은 포인트 형제 @ ScottCraner, 나는 그 가정을 잊고;) –

관련 문제