如何将数字比较为字符串? 我想比较f.ex。 2和10。当我在Excel中按升序对它们进行排序时,它们2在10之前,但是当我在VBA中比较时,这两个10似乎比2低。我正在使用strcomp函数。我需要将它们作为字符串进行比较,因为它是在excel列中搜索相同字符串的较大程序的一部分。字符串可以是普通字符串,数字和带有数字的字符串,例如“ 12-131xxx”。
答案 0 :(得分:0)
Mnich和 StrComp , vbBinaryCompare 或 vbTextCompare 会为您提供当前的收益。当Excel对数字/整数进行排序时,它将按照您的期望进行排序,但是当将数字作为字符串进行排序时,它将使用文本比较。因此所有以1开头(甚至111)的数字都将排在2以下。如Comintern所述,您必须添加前导零才能避免这种情况。
或者,也许您在对字符串进行排名之前回答了一个数字比较,您可以尝试使用Function提取数字,然后权衡您的决定:
'pass in array from main stuff
Function StackOverflow(arr())
Dim arr_NewStr() As String
Dim x As Integer
Dim i As Integer
ReDim arr_NewStr(1 To UBound(arr))
x = 1
For i = 1 To UBound(arr)
Do
If IsNumeric(Mid(arr(i), x, 1)) Then
arr_NewStr = arr_NewStr & Mid(arr(i), x, 1)
End If
x = x + 1
Loop Until x = Len(arr(i))
Next
'clean up
x = vbEmpty: i = vbEmpty
'pass somewhere, or make "arr" public
结束功能