2013-08-30 9 views
1

문자열의 범위를 검색 한 다음 문자열에서 부분 문자열을 추출하고 싶습니다. 문자열의 형식은 xxx-xxx-xxx-xxx입니다. 여기서 x는 문자 또는 숫자입니다. "-"에 대한 부분 문자열을 식별하려고합니다. 이 코드는 End If 전에 줄에 "형식 불일치"오류를 반환합니다.범위 내의 문자열에서 부분 문자열 추출

For m = 7 To 16 
    If InStr(EIRPBudget.Cells(m, 12), "-") Then 
     FilterDescrip = EIRPBudget.Cells(m, 12) 
     EIRPSummary.Range("V" & i + 5) = Split(FilterDescrip, "-")(0) 
    End If 
Next 

도움을 주시면 감사하겠습니다.

+0

나는 왜 * 형식 불일치가 발생했는지에 대해 대답했지만, "i = 5"가 무엇을하고 있는지 모릅니다. 아니면 오타입니까? –

답변

3

Type Mismatch이 부분에 의해 야기되는 "VFALSE"로 평가 EIRPSummary.Range("V" & i = 5)i 5 및 "VTRUE"가 아닌 경우이면 ...

UPDATE를

I가 돈 ' t 루프를 사용하지 않고 모든 VBA에서 벗어날 수 있다고 생각합니다. 범위 내에서 개별 셀을 반복해야하기 때문입니다. 또한

Dim cellValue As String 
For m = 7 To 16 
    cellValue = EIRPBudget.Cells(m, 12) 
    If InStr(cellValue, "-") Then _ 
     EIRPSummary.Range("V" & i + 5) = Split(cellValue, "-")(0) 
Next 

: 만 반복 당 한 번만 셀 값을 평가에 당신은 당신의 코드를 수정할 수 있습니다 ...하지만 난 생각하지 않는다 그러나 거기에 당신이하고있는 반복의 작은 수에 큰 영향을 될 것 워크 시트에 다른 열을 추가 할 수 있다면 =LEFT([A1],FIND("-",[A1])-1) (여기서 [A1]은 "xxx-xxx-xxx-xxx"가있는 셀 임) : n 가장 왼쪽의 문자가 해당 문자를 제외하고 처음으로 "-"가 나타납니다.

+0

나는 바보 같이 느낍니다. 당신은 오타가 붙어 있습니다. "="는 "+"이어야하며 이제는 정상적으로 작동합니다. 고마워, 친구. 어쩌면 누군가가 루프를 필요로하지 않는보다 효율적인 대안을 설명 할 수 있습니다. – jmaz

+0

@ Max 나는 내가 쓸데없는 길을 찾았다 고 생각한다. 어떤 코드도 발생할 수있다. :) –

+0

나는 둘 모두를 좋아한다. 시간을내어 주셔서 감사합니다. – jmaz