gpt4 book ai didi

vba - 在 VBA 中将字母转换为数字

转载 作者:行者123 更新时间:2023-12-04 21:10:08 26 4
gpt4 key购买 nike

寻找一些建议。我有一个单元格中包含字母和数字组合的单元格值。每个值是 6 个字母,后跟 0000,后跟 4 个字母,然后是 5 到 8 个数字。例如。

IIKBAR0000EEEE510002
MQYUQF0000EEEE410003
MWWVIQ0000ZYXW210004
DJHZXL0000BBBB410005

这些或多或少是完全随机的,其中有 100k 到 1,048,576 个!

有什么方法可以将字母转换为数字(即 A = 1、B = 2、Z = 26 等),而无需告诉 VBA 每个字母的值?我目前使用的代码非常慢,因为它有 26 个 If-Else 案例。

最佳答案

我认为这是 UDF 将为您工作:

Option Explicit

Function ConvertLetterToNumber(ByVal strSource As String) As String

Dim i As Integer
Dim strResult As String

For i = 1 To Len(strSource)
Select Case Asc(Mid(strSource, i, 1))
Case 65 To 90:
strResult = strResult & Asc(Mid(strSource, i, 1)) - 64
Case Else
strResult = strResult & Mid(strSource, i, 1)
End Select
Next
ConvertLetterToNumber = strResult

End Function

它将每个非数字值转换为其 Ascii 等效值,然后将其缩减为其字母等效值(A=1、B=2 等)。只需将其用作常规公式即可。 注意:它假定您的非数字值是大写的。

附录

使用第四代 i5 处理器和 8GB RAM,上述代码将在不到 2 分钟的时间内返回 250,000 行。

关于vba - 在 VBA 中将字母转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38855045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com