将值与一些字母数字进行比较

时间:2018-08-22 20:52:52

标签: excel vba excel-vba access-vba

我浏览了各个论坛,但找不到任何有帮助的问题(带有答案)。任何指导将不胜感激。

我正在处理一个交叉引用错误代码的Excel / Access项目。密码长十二位数,前半部分和后半部分需要排序。这些代码中有99%完全是数字代码,但是包含字母的1%确实让我感到困惑。

例如,常见的错误代码可能是“ 386748000123”。将其分为“ 386748”和“ 000123”,第一个是系统类型的代码,第二个是错误类型。

但是1%的值是这样的:“ 0957AB003A41”。 “ 0957AB”和“ 003A41”。

如果我将列(在Excel和Access中)格式化为数字,则比数字比较容易得多,那么“ 000123”等于“ 123”。如果我将列设置为字符串格式,则可以比较字母数字值,但是“ 000123”和“ 123”停止交叉。

我遇到的可能解决方案是利用Access查询中的Val函数纯粹比较值,但我从未使用过它,似乎只是部分解决了。 Val忽略字符串,这意味着“ 0957AB”将具有与“ 0957XY”相同的值-不适用于该项目。

我确定你们中的许多人都遇到过类似的问题,所以我希望就解决和解决问题的不同方式获得一些想法。

1 个答案:

答案 0 :(得分:0)

您没有提供数据和输出的最少样本,也没有代码可以为您修改,但是您遇到问题的唯一部分是比较字母数字,您应该格式化所有数据作为字符串,然后进行比较。要使123等于“ 000123”,您只需将数字格式设置为字符串,如下所示:

<select id="vertext">
<option value=""></option>
<option value="A">A</option>
<option value="B">B</option>
</select>
<br>
Index is <span id="output"><span>

这将给您format(123,"000000")

修改

从您的评论中我了解到问题是始终或经常是数字的键,"000123"将返回正确的字符串以进行比较,如果它已经是6个字符的字符串,它将返回自身,因此不会有问题:

做这样的事情:

format