我有一個問題,我試圖比較可能是字母數字,僅數字或僅字母的值。VBA大於函數不起作用
該代碼原本適用於比較同一個100s組(IE 1-99與字母組件)中的任何內容。但是,當我包含100多個,它發生故障。
代碼的當前部分內容:在過去if
語句時發生
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
問題。 當通過100的循環大於67時,仍然跳過。我試圖將它們都聲明爲字符串(在這部分代碼的上面),看看它是否會有所幫助,但不會。
我想完成的是排序通過一堆行,找到它應該去的地方。 IE 100A應該在100到100B之間。
對不起lennew=len("100A")
和lennold=len("67")
。並且thislength=4
或者其他兩種長度中的較大者。
你想要的數字部分數字進行排序,但如果這些都是平等的,按字母順序排序的平衡,正確嗎? –
是的。除非有更好的方法去做。我基本上只是希望它顯示爲。 69,69A,69B,70A,99A,100,100A。 (或任何數字和字母的變體)。我遇到的問題是,69號出現的第一點點大於100,但不知何故代碼現在無法識別它,它確實較大。 –
在使用公式比較之前,您需要將數字部分轉換爲數字類型。請參閱文檔中的[比較運算符](http://stackoverflow.com/documentation/vba/5813/operators/20479/comparison-operators#t=201702151525369696781)。 – Comintern