2016-08-10 3 views
0

를 장착하여 다음반복 처리는 I는 다음과 같다 데이터 세트가 기능

  1. 2Ard -7-
  2. 2Ard-99
  3. 1RPI 35
  4. 1RPI -34
  5. 1RPI-39
  6. 1RPI-38

저는 이것을 반복하고 각 셀의 부분을 다른 지정으로 바꾸려고합니다. 다음은 지금까지 가지고있는 코드입니다.

Dim CompPin() As String 
Dim AutoPin() As String 
Dim Item As Variant 

CompPin() = Split("1ARD 2ARD 1RPI 2RPI") 
AutoPin() = Split("PB1A PC1A PF1A PF2B") 

For Each Item In CompPin 
    Worksheets("Demo").Columns("D").Replace What:=CompPin(Item), Replacement:=AutoPin(Item), LookAt:=xlPart 
Next 

이 코드를 실행하면 형식이 일치하지 않습니다. 모든 통찰력이 도움이 될 것입니다.

+0

입니까? 정의 된 위치는 어디입니까? –

+0

'Debug.Print CompPin (Item)'이라면 For 루프가 인덱스를 리턴하지 않고 실제로 문자열 배열의 값을 리턴합니다. - What : =와 같이 직접 사용할 수 있습니다. Item' -하지만 AutoPin에는 새로운 루프가 필요합니다. @ Mister832와 같은 루프를 사용하는 것이 더 낫다 - 설명이 없다면 더 잘 설명 할 수있다. – dbmitch

+0

@Mister 832 - 나는 그것을 편집했다. oops –

답변

2

는이

CompPin() = Split("1ARD 2ARD 1RPI 2RPI") 
AutoPin() = Split("PB1A PC1A PF1A PF2B") 

For n = 0 To UBound(CompPin) 
    Worksheets("Demo").Columns("D").Replace What:=CompPin(n), Replacement:=AutoPin(n), LookAt:=xlPart 
Next 
+0

완벽한! 그것이 내가 찾고 있던 것입니다. –

0

대안은 "이중 분할"이 될 수 시도해보십시오 GarminPin 무엇

Sub main() 
    Dim CompAutoPin() As String 
    Dim Item As Variant 

    CompAutoPin() = Split("1ARD-PB1A 2ARD-PC1A 1RPI-PF1A 2RPI-PF2B")  
    For Each Item In CompAutoPin 
     Worksheets("Demo").Columns("D").Replace What:=Split(Item, "-")(0), Replacement:=Split(Item, "-")(1), LookAt:=xlPart 
    Next Item 
End Sub 
+0

이것은 흥미 롭습니다. 나는 이것을 복사하고 조금 탐험 할 것이다. 감사. 이것은 무엇이 대체되는지 더 잘 추적 할 수 있다는 부가적인 이점을 가지고 있습니다. –

+0

당신은 오신 것을 환영합니다. 그래서 당신은 이것을 투표 할 수 있습니다 :-) – user3598756

관련 문제