作者:残念易_138 | 来源:互联网 | 2023-05-25 16:37
我有一个小VBA项目,但我有一个问题.
我需要一个32个字符的十六进制字符串并将其转换为UUID.
Input: b10a8db164e0754105b7a99be72e3fe5
Output: b10a8db1-64e0-7541-05b7-a99be72e3fe5
我不知道从哪里开始,但我想我需要在这么多字符之后拆分字符串然后重新组合它.有效地执行此操作的任何指针或方法?
1> Brad..:
您可以使用Left
,Right
并将Mid
其转换为您想要的格式.
Function makeUuid(asString As String) As String
Dim asUuidFormat As String
If Len(asString) <> 32 Then
makeUuid = asString
Exit Function
End If
Dim firstPart As String, secondPart As String, thirdPart As String, fourthPart As String, fifthPart As String
firstPart = Left(asString, 8)
secOndPart= Mid(asString, 9, 4)
thirdPart = Mid(asString, 13, 4)
fourthPart = Mid(asString, 17, 4)
fifthPart = Right(asString, 12)
makeUuid = firstPart & "-" & secondPart & "-" & thirdPart & "-" & fourthPart & "-" & fifthPart
End Function
您可以在工作表中使用`= makeUuid(A4)'(或任何单元格)
![在此输入图像描述](https://img.php1.cn/3cd4a/1eebe/cd5/fb32005f2115b419.webp)
如果传入的不是32个长度的字符串,它不会进行格式化,只返回原始字符串.