2013-05-09 2 views
0

이 질문이 너무 기본적인 경우, Excel VBA에 대한 경험이 없음을 말하고 있습니다. Dim과 배열을 사용하여 이미 시도했지만 목표를 달성하지 못했습니다. 오류가 발생하거나 무한 루프가 발생합니다.Excel 자동 대체 매크로

기본적으로 대체 할 5 개의 다른 텍스트가 있는데 배열을 만들려고합니다. 루프가 제거되어 모두 제거됩니다.

Sub AutoReplace() 

Dim myArray(1 To 5) As String 
myArray(1) = "Text1" 
myArray(2) = "Text2" 
myArray(3) = "Text3" 
myArray(4) = "Text4" 
myArray(5) = "Text5" 

For Each item In myArray 
ActiveCell.Select 
ActiveCell.Columns("A:A").EntireColumn.Select 

    Selection.Replace What:=item, Replacement:="", LookAt:=xlPart, _ 
     SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
     ReplaceFormat:=False 
Next item 

End Sub 

내 코드의 문제점에 대한 제안이나 전혀 다른 접근 방식을 찾고 있습니다. 마지막 목표는 위에서 언급 한 것뿐입니다.

+0

걸릴 지정하고 각 시간을 선택할 수 있습니다? 게다가 "오류가 발생하는 경우"오류가 무엇인지 그리고 어떤 코드 행에 있는지도 말해야합니다. – Voitcus

+0

참고로, 나는 이미 완전한 멍청이라고 말했으므로, 나는 노력하고있는 모든 것에 대한 설명을 완전히 알지 못할 수도있다. 내 문제는 코드 줄에서 특정 오류를 해결하는 것이 아니라 함수의 목표를 달성하는 것입니다. –

답변

2

아래 코드를 시도하십시오. 선택/활성화를 사용하지 마십시오. 이유를 알고 싶으시면 link을 클릭하십시오. 은 또한 당신은 명시 적으로`ActiveCell`를 사용하는 이유는 다른 Sheets("sheet1").Columns("A:A") 같은 시트 이름이 ActiveSheet

Sub AutoReplace() 

    Dim myArray(1 To 5) As String 
    myArray(1) = "Text1" 
    myArray(2) = "Text2" 
    myArray(3) = "Text3" 
    myArray(4) = "Text4" 
    myArray(5) = "Text5" 

    For Each Item In myArray 

     Columns("A:A").Replace What:=Item, Replacement:="", LookAt:=xlPart, _ 
          SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
          ReplaceFormat:=False 
    Next Item 

End Sub 
+0

잘 했어, 고마워. –