영숫자, 숫자 또는 영숫자 만 사용할 수있는 값을 비교하려고하는 문제가 있습니다.VBA보다 큰 기능이 작동하지 않습니다.
코드는 원래 동일한 100s 그룹 (영문 구성 요소와 IE 1-99) 내에서 비교할 때 정상적으로 작동했습니다. 그러나 100+를 포함 시키면 오작동을 일으 킵니다.
코드의 현재 부분을 읽
For j = 1 To thislength
If lennew < j Then
enteredval = Left("100A", lennew)
ElseIf lennew >= j Then
enteredval = Left("100A", j)
End If
If lenold < j Then
cellval = Left("67", lenold)
ElseIf lenold >= j Then
cellval = Left("67", j)
End If
'issue occurs here
If enteredval >= cellval Then
newrow = newrow+1
End If
Next j
문제는 지난 if
문에 발생합니다. 100을 순환하는 것이 67보다 크지 만 계속 건너 뜁니다. 나는 그것들이 도움이되는지 아닌지를보기 위해 (이 코드 부분 위에) 두 문자열을 모두 선언하려고 시도했지만 그렇지 않았다.
내가 수행하려고하는 것은 일련의 행을 정렬하고 이동해야하는 위치를 찾는 것입니다. IE 100A는 100 ~ 100B 사이에 있어야합니다.
죄송합니다. lennew=len("100A")
및 lennold=len("67")
입니다. 그리고 thislength=4
또는 두 길이 중 큰 것.
숫자 부분을 숫자로 정렬하고 싶다면 그 숫자가 같은 경우 알파벳 순으로 정렬하고 맞습니까? –
예. 그것을 할 수있는 더 좋은 방법이 없다면. 나는 기본적으로 그것이 나타나기를 원한다. 69, 69A, 69B, 70A, 99A, 100, 100A). (또는 숫자와 문자의 변형). 내가 겪고있는 문제는 첫 번째 비트가 69보다 커 보이지만 실제로는 코드가 실제로 커지면 코드가 인식하지 못한다는 것입니다. –
숫자 비교를 사용하기 전에 숫자 부분을 숫자 형식으로 변환해야합니다. 문서의 [비교 연산자] (http://stackoverflow.com/documentation/vba/5813/operators/20479/comparison-operators#t=201702151525369696781)를 참조하십시오. – Comintern