日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

《Excel VBA编程开发》附加内容1:VBA生成GUID

發布時間:2023/12/13 综合教程 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 《Excel VBA编程开发》附加内容1:VBA生成GUID 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.1 VBA生成GUID

全局唯一標識符(GUID,Globally Unique Identifier)是一種由算法生成的二進制長度為128位的數字標識符。GUID主要用于在擁有多個節點、多臺計算機的網絡或系統中。在理想情況下,任何計算機和計算機集群都不會生成兩個相同的GUID。GUID 的總數達到了2^128(3.4×10^38)個,所以隨機生成兩個相同GUID的可能性非常小,但并不為0。所以,用于生成GUID的算法通常都加入了非隨機的參數(如時間),以保證這種重復的情況不會發生。

GUID一詞有時也專指微軟對UUID標準的實現。

在 Windows 平臺上,GUID 廣泛應用于微軟的產品中,用于標識如注冊表項、類及接口標識、數據庫、系統目錄等對象。

GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每個 x 是 0-9 或 a-f 范圍內的一個十六進制數。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即為有效的 GUID 值。

本節介紹VBA中生成GUID的方法

1.1.1 使用ScriptLet生成GUID

在VBA工程中添加引用“Microsoft ScriptLet Library”。

Sub 生成GUID()

Dim MyGUID As String

Dim Lib As Scriptlet.IGenScriptletTLib

Set Lib = CreateObject("Scriptlet.Typelib")

MyGUID = Lib.GUID

Debug.Print MyGUID

Debug.Print LCase(Mid(MyGUID, 2, 36))

End Sub

運行上述代碼,立即窗口打印出帶花括號和不帶花括號的兩種形式的GUID,根據需要選擇使用。

然而,在很多電腦上運行上述代碼,當運行至CreateObject那行時,經常出現如下錯誤。

這種情況下,使用API函數更為可靠。

1.1.2 使用API函數生成GUID

Private Type GUID_TYPE

Data1 As Long

Data2 As Integer

Data3 As Integer

Data4(7) As Byte

End Type

Private Declare Function CoCreateGuid Lib "OLE32.DLL" (GUID As GUID_TYPE) As Long

Private Declare Function StringFromGUID2 Lib "OLE32.DLL" (GUID As GUID_TYPE, ByVal lpStrGuid As Long, ByVal cbMax As Long) As Long

Sub API生成GUID()

Dim GT As GUID_TYPE

Dim MyGUID As String

Call CoCreateGuid(GT)

MyGUID = String(39, vbNullChar)

Call StringFromGUID2(GT, StrPtr(MyGUID), 39)

Debug.Print MyGUID

Debug.Print LCase(Mid(MyGUID, 2, 36))

End Sub

運行上述代碼,同樣打印出新的GUID。

總結

以上是生活随笔為你收集整理的《Excel VBA编程开发》附加内容1:VBA生成GUID的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。