首页 ExcelVBA全局唯一标识符GUID
文章
取消

ExcelVBA全局唯一标识符GUID

全局唯一标识符(GUID),也被称为通用唯一标识符(UUID),是一个由128位数字组成的标识符。它的目的是在分布式计算环境中确保唯一性,无论在何处生成。GUID通常以字符串形式表示,它具有以下特点:

全局唯一性:

  • GUID的核心特征是其全局唯一性。在所有生成GUID的地方,每个GUID几乎是唯一的。虽然不可能保证绝对唯一,但由于其长度和生成方式,冲突的可能性非常低。

128位长度:

  • GUID由128位二进制数字组成,通常以32个十六进制数的形式表示(例如:550e8400-e29b-41d4-a716-446655440000)。这种长度使得其独特性非常高,几乎可以认为是唯一的。

生成方式:

  • 生成GUID的算法通常基于各种因素,包括时间、计算机硬件信息和随机性。这使得在不同的计算机和时间上生成的GUID之间也具有高度的独特性。

不可预测性:

  • 尽管GUID的生成是有规则的,但由于其中包含随机元素,人们很难预测下一个生成的GUID是什么。

用途:

  • GUID在分布式计算环境中具有广泛的应用,例如数据库记录的唯一标识、文件系统中文件的唯一标识、网络通信中的消息标识等。它们用于确保不同系统或实体生成的标识符不会发生冲突。

标准:

  • GUID的标准定义在RFC 4122中,该标准定义了生成GUID的不同版本(包括基于时间的版本、随机数的版本等)以及如何表示和解释GUID。

注意:

  • 需要注意的是,尽管GUID在许多情况下非常有用,但由于其长度较长,可能不适用于某些特定的用途。在某些环境下,可能会选择使用更短的唯一标识符,如短UUID或哈希值,以减少存储和传输开销。
'生成全球维一码
Private Type GUID_TYPE
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Declare PtrSafe Function CoCreateGuid Lib "ole32.dll" (GUID As GUID_TYPE) As LongPtr
Private Declare PtrSafe Function StringFromGUID2 Lib "ole32.dll" (GUID As GUID_TYPE, ByVal lpStrGuid As LongPtr, ByVal cbMax As Long) As LongPtr
Function newGUID()
Dim GUID As GUID_TYPE
Dim strGuid As String
Dim retValue As LongPtr
Const guidLength As Long = 39 'registry GUID format with null terminator {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
retValue = CoCreateGuid(GUID)
If retValue = 0 Then
strGuid = String$(guidLength, vbNullChar)
retValue = StringFromGUID2(GUID, StrPtr(strGuid), guidLength)
If retValue = guidLength Then
' valid GUID as a string
'newGUID = strGuid
newGUID = Mid(strGuid, 2, 36)
End If
End If
End Function

在Excel VBA中生成全局唯一标识符(GUID)可以使用 CreateObject(“Scriptlet.TypeLib”).Guid 方法。下面是一个示例代码,演示如何在Excel VBA中生成GUID: 在运行这段代码后,它将创建一个新的GUID并在消息框中显示出来。每次运行代码,都会生成一个不同的全局唯一标识符。请注意,这种方法依赖于 Scriptlet.TypeLib 对象,所以在某些情况下可能会受到系统环境的影响。如果你需要生成GUID,并且要求更高的可靠性和一致性,可以考虑使用第三方VBA库或其他外部工具。

Sub GenerateGUID()
    Dim newGUID As String
    newGUID = CreateObject("Scriptlet.TypeLib").Guid
    MsgBox "Generated GUID: " & newGUID
End Sub

ExcelVBA批量合并工作表

ExcelVBA集装箱号校验公式