Chl*_*loe 4 excel vba guid excel-vba
为什么这个VBA函数会在字符串末尾打印出随机垃圾?
Public Function GenGuid() As String
Dim TypeLib As Object
Dim Guid As String
Set TypeLib = CreateObject("Scriptlet.TypeLib")
Guid = TypeLib.Guid
' format is {24DD18D4-C902-497F-A64B-28B2FA741661}
Guid = Replace(Guid, "{", "")
Guid = Replace(Guid, "}", "")
'Guid = Replace(Guid, "-", "")
GenGuid = Guid
End Function
print genguid()
816BF7CB-68B9-4D6B-855B-1273F22063DB 6
print genguid()
53664789-B0CD-422C-87B4-8928D93E5078
print genguid()
FDD8ABDE-41F1-45E0-8330-9BA6161873BE i
Run Code Online (Sandbox Code Playgroud)
Excel 2007
这是一个长期存在的GUID错误,已经记录了很长一段时间.它是各种类型的空终止,它应该以两个地方的ASC(0)结束.我在Excel立即窗口中测试了它,第二个"垃圾"数字循环通过不同的值,只有第一个空字符始终为空.
但是,从单元格调用函数后,在立即窗口中打印它将停止调用不同的最后一个数字,并将始终打印出两个ASC(0)值.奇怪的.
然而,根据我的测试,修剪最后2个位置并没有显示任何有害影响.