我有一个问题,我试图比较可能是字母数字,仅数字或仅字母的值。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