2016-07-11 2 views
0

특정 제목 만있는 열을 선택하려고합니다. 다른 모든 열은 삭제하지만 계속 오류가 발생합니다. Method 'Range' of object '_Global' failed이고 일곱 번째 코드 줄 (Range(Cells(1, Col)).Select)을 강조 표시합니다. 도움이나 제안을 주시면 감사하겠습니다. - 감사합니다!일부 열을 선택하고 다른 사람을 삭제하십시오. VBA

 Dim Col As Integer 
     Col = 1 
     Range("A1").Select 
     While Selection.Value <> "" 
      If Selection.Value = "A" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "B" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "D" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "E" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "F" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "H" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "J" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "M" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "N" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "P" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "R" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "S" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "T" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "V" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      ElseIf Selection.Value = "X" Then 
       Col = Col + 1 
       Range(Cells(1, Col)).Select 
      Else: ActiveCell.EntireColumn.Delete 
      End If 
     Wend 
+1

는'Range' 치우는보십시오, 그래서 그냥 '세포 (1 골) .Select'를 사용합니다. –

+0

고마워요. – reggie86

답변

2

먼저, 하나의 Cell 인수로 Range를 호출하면 오류가 발생합니다. 하나의 셀만있는 경우 셀에 Address 속성을 추가해야합니다.이 라인은 Range(Cells(1,col).Address).Select

이어야합니다. 두 번째로, 코드에서 수행하고자하는 것으로부터이 코드를 생각하지 않습니다. 당신이 원하는 방식을 실제로 수행 할 것입니다. 솔직히 말해서 코드 자체에서 무엇을하려고하는지조차 알 수는 없으므로 내 대답이 오류 호출을 수정한다는 사실을 미리주의 깊게 살펴야합니다.하지만 일단 예상대로 실행되지는 않을 것 같습니다. 실행됩니다.

+0

적어도이 코드를 실행하는 데 훨씬 효율적인 방법이 있습니다. 실제로 실행하려고하면 작성됩니다. – RGA

+1

감사합니다. 또한 필자는 강조 표시가 문제가 될 수 있도록 글자를 열 이름으로 삽입했습니다.하지만 이는 혼란 스러울 수 있습니다. 어쨌든 이제는 작동합니다. 감사합니다! – reggie86

관련 문제