2014-01-28 3 views
0

필자는 필요없는 Excel의 수백 가지 열이 있습니다. 나는 내가 갖고 싶은 범위가있다. 분에서 모든 열을 제외하고 모두 삭제 VBA

나는

Sub DeleteClms() 
    Range("A:G,L:O").Delete 
End Sub 

내가 단순히 = 되었는데요 다른 언어로,이 반대 할 어쨌든 거기에있다! 나는 <을 넣어 봤지만 어디에서/어떻게 내 코드에 넣을지 모릅니다.

감사

+0

될 것이다. 그런 다음 조금 들어가서 정리하십시오. – SeekingAlpha

+0

아니요 -이를 위해 VBA에서 직접적인 접근 방식이 없습니다. 가장 가까운 것은 원하지 않는 범위를 삭제하는 것이 아니라 원하는 다른 범위를 복사하는 것입니다. – brettdj

답변

0

내가 알고있는 컬럼의 Symetric 차이에 대한 Excel 또는 VBA 기능이 없습니다.

다음은 빠른 VBA 기능입니다. 사용법은 흠 당신은 내가 당신의 상황에 있다면 <>, 난 그냥 매크로를 기록 할 사용하고 난 삭제하려는 모든 열을 선택할 수 있습니다 확실하지 DeleteAllBut Range("A:C,H:Q")

Sub DeleteAllBut(rngToKeep As Range) 
    Dim ws As Worksheet 
    Dim rngToDelete As Range 
    Dim rngColi As Range 

    'Number of columns used in worksheet 
    Set ws = rngToKeep.Parent 
    iCols = ws.UsedRange.Columns.Count 

    FirstOne = True 
    For i = 1 To iCols 
     Set rngColi = Range("A:A").Offset(0, i - 1) 
     If Intersect(rngToKeep, rngColi) Is Nothing Then 
      If FirstOne Then 
       Set rngToDelete = rngColi 
       FirstOne = False 
      Else 
       Set rngToDelete = Union(rngColi, rngToDelete) 
      End If 
     End If 
    Next i 

    Debug.Print rngToDelete.Address & " was deleted from " & ws.Name 
    rngToDelete.Delete 


End Sub 
관련 문제