用破折号将hex数字转换为GUID

我有几百个hex数字(32个字符长),从一个SQL数据库中拉出。 我有他们存储在一个Excel表中,需要将它们转换为破折号的GUID。 我find了一个在线转换器,但它只能一次一个,这将是非常耗时( http://www.windowstricks.in/online-windows-guid-converter )。 有没有办法,在Excel中与VBA或公式或在SQL中转换这些? 这不像仅仅将破折号添加到正确的地方那么简单。 我试过了,这不是我需要发生的事情。 hex和转换后的短划线GUID的示例:

hex

  1. 6F414B9DFB178945A3641E40BC2A4AAB
  2. C58C415E215CEC4D9B5100532573D3FA
  3. 2B0BBF00A1403E41A333C805961CEA9F

上面的hexGUID转换

  1. 48a6c53b-941C-46e2-9964-680754f71666
  2. ea0ba3f4-4905-4d9c-9d83-76c57bdb060a
  3. 18cea3f7-e1d1-4609-a4bc-9bf6fec6a2d4

任何帮助,你可以给予非常感激。 谢谢

此函数将hexstring转换为格式化的GUIDstring:

 Public Function ConvHexToGuid(hexa As String) As String Dim guid As String * 36 Mid$(guid, 1) = Mid$(hexa, 7, 2) Mid$(guid, 3) = Mid$(hexa, 5, 2) Mid$(guid, 5) = Mid$(hexa, 3, 2) Mid$(guid, 7) = Mid$(hexa, 1, 2) Mid$(guid, 9) = "-" Mid$(guid, 10) = Mid$(hexa, 11, 2) Mid$(guid, 12) = Mid$(hexa, 9, 2) Mid$(guid, 14) = "-" Mid$(guid, 15) = Mid$(hexa, 15, 2) Mid$(guid, 17) = Mid$(hexa, 13, 2) Mid$(guid, 19) = "-" Mid$(guid, 20) = Mid$(hexa, 17, 4) Mid$(guid, 24) = "-" Mid$(guid, 25) = Mid$(hexa, 21, 16) ConvHexToGuid = guid End Function 

hex的GUID转换如下:

0x00112233445566778899AABBCCDDEEFF

{33221100-5544-7766-8899-AABBCCDDEEFF}

我find了答案。 感谢@florent。 我不确定为什么GUID出现了不同的情况,并且在我第一次运行时仍然有效,但我有一个解决scheme。 我用VBA代码做了这个:

 Sub CreateGUID() Dim count, GUIDConverted As String count = 2 Do While Range("F" & count).Value <> "" Range("F" & count).Select GUIDConverted = Range("F" & count).Value GUIDConverted = ConvertHexToGUID(GUIDConverted) Range("H" & count).Value = GUIDConverted count = count + 1 Loop End Sub Public Function ConvertHexToGUID(hexa As String) As String Dim guid As String * 36 Mid$(guid, 1) = Mid$(hexa, 7, 2) Mid$(guid, 3) = Mid$(hexa, 5, 2) Mid$(guid, 5) = Mid$(hexa, 3, 2) Mid$(guid, 7) = Mid$(hexa, 1, 2) Mid$(guid, 9) = "-" Mid$(guid, 10) = Mid$(hexa, 11, 2) Mid$(guid, 12) = Mid$(hexa, 9, 2) Mid$(guid, 14) = "-" Mid$(guid, 15) = Mid$(hexa, 15, 2) Mid$(guid, 17) = Mid$(hexa, 13, 2) Mid$(guid, 19) = "-" Mid$(guid, 20) = Mid$(hexa, 17, 4) Mid$(guid, 24) = "-" Mid$(guid, 25) = Mid$(hexa, 21, 16) ConvertHexToGUID = guid End Function 

这适用于我所有的hex数字。 感谢所有那些花时间做出回应的人,他们都在帮助我。