특정 문자열에 특정 값을 추가하는 매크로가 있습니다. 그러나 나는 현재 이유를 알아낼 수없는 런타임 오류가 발생하고 있습니까?런타임 오류 - 형식 불일치
Case "L"
If UCase(Left(Dn, 3)) = "L/M" Then
Dn.Offset(, 1) = Val(Mid(Dn, 4, 2)) + 35
ElseIf UCase(Left(Dn, 2)) = "LM" Then
'Dn.Offset(, 1) = Val(Mid(Dn, 3, 3)) + 3.5
If IsNumeric(Mid(Dn, 3, 1)) And IsNumeric(Mid(Dn, 4, 1)) Then
If Mid(Dn, 4, 1) = "0" Then
Dn.Offset(, 1) = Mid(Dn, 3, 2) + 3.5
Else
Dn.Offset(, 1) = Mid(Dn, 3, 2) + 0.35
End If
End If
If IsNumeric(Mid(Dn, 4, 1)) And IsNumeric(Mid(Dn, 5, 1)) Then
If Mid(Dn, 5, 1) = "0" Then
Dn.Offset(, 1) = Mid(Dn, 3, 3) + 35
Else
Dn.Offset(, 1) = Mid(Dn, 3, 3) + 0.35
End If
End If
ElseIf UCase(Left(Dn, 3)) = "LOW" Then
Dn.Offset(, 1) = Val(Mid(Dn, 4, 2)) + 20
ElseIf UCase(Left(Dn, 3)) = "LO-" Then
Dn.Offset(, 1) = Val(Mid(Dn, 4, 2)) + 20
ElseIf UCase(Left(Dn, 6)) = "LO MID" Then
Dn.Offset(, 1) = Val(Mid(Dn, 7, 3)) + 35
ElseIf UCase(Left(Dn, 2)) = "L+" Then
Dn.Offset(, 1) = Num
ElseIf UCase(Left(Dn, 3)) = "LO " Then
Dn.Offset(, 1) = Val(Mid(Dn, 4, 2)) + 20
'ElseIf UCase(Left(Dn, 1)) = "L" Then
'Dn.Offset(, 1) = Val(Mid(Dn, 2, 3)) + 2
'ElseIf IsNumeric(Mid(Dn, 2, 1)) Then
'Dn.Offset(, 1) = IIf(IsNumeric(Mid(Dn, 2, 1) + Mid(Dn, 3, 1)), Val(Mid(Dn, 2, 3)) + 2, Val(Mid(Dn, 2, 1)) + 0.2)
ElseIf IsNumeric(Mid(Dn, 2, 1)) And IsNumeric(Mid(Dn, 3, 1)) Then
If Mid(Dn, 3, 1) = "0" Then
Dn.Offset(, 1) = Mid(Dn, 2, 2) + 2
Else
Dn.Offset(, 1) = Mid(Dn, 2, 2) + 0.2
End If
Else
Dn.Offset(, 1) = Val(Mid(Dn, 2, 3)) + 20
End If
If IsNumeric(Mid(Dn, 3, 1)) And IsNumeric(Mid(Dn, 4, 1)) Then
If Mid(Dn, 4, 1) = "0" Then
Dn.Offset(, 1) = Mid(Dn, 2, 3) + 20
Else
Dn.Offset(, 1) = Mid(Dn, 2, 3) + 0.2
End If
End If
입력 데이터
*vh105 --> 105.9
*h107 --> 107.8
*l107 --> 107.2
*lm106 --> 106.35
*lm106
*l107
*44
이 문제에 어떤 도움이 아주 많이 감사 할 것입니다. 나는 발은 적절한 수치 문자열이 Mid
함수에서 작업 할 수 나던 생각하는
(Debug> Step Into) 단계를 사용하여 디버깅하고 코드의 어느 행이 실제로 작동을 멈추는 지 확인하십시오. 또한 지역별보기 창 (보기> 지역별보기)을 열어 모든 값이 예상대로인지 확인하십시오. –
응답 해 주셔서 감사하지만 3 행 코드에 문제가 있습니다. 또한 지역 시계 변수에 아무 것도 표시되지 않습니다. 나는 "MH"와 M 변수에 대해 같은 코드를 가진 Case M과 동일한 코드를 가지고 있으며,이를 실행할 때 실수를하지 않는다. – user1574185
지역 사용자는 로컬 요소에 대한 값 또는 개체 할당을 표시합니다. 그래서 나는 그것이'string' 타입의 지역 변수이기 때문에 Dn이 거기에 보여지기를 기대할 것입니다. –