vba - 为什么这个VBA打印出随机垃圾?

标签 vba excel guid

为什么这个 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

引用

http://office.microsoft.com/client/helppreview.aspx?AssetId=HV805572319990&lcid=1033&NS=EXCEL%2EDEV&Version=12&queryid=&respos=1&HelpID=vblr6%2Echm1008930

版本

Excel 2007

最佳答案

这是一个长期存在的 GUID 错误,已记录很长时间了。它是某种空终止符,并且在两个地方都应该以 ASC(0) 结尾。我在 Excel 立即窗口中对其进行了测试,第二个“垃圾”数字在不同的值之间循环,并且只有第一个空字符始终为空。

但是,一旦从单元格调用该函数,在立即窗口中打印它就不再调用不同的最后一位数字,而是始终打印出两个 ASC(0) 值。奇怪。

但是,据我测试,修剪最后 2 个位置并没有显示出任何有害影响。

关于vba - 为什么这个VBA打印出随机垃圾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19556268/

相关文章:

json - 将 Json 转换为 Xlsx 文件

c# - 使用 NPOI 从 Excel 电子表格中检索合并单元格的值

sql - 将 Raw(16) 转换为 GUID

c# - 生成在合理时间内不重复的唯一编号的方法?

python - 如何使用 Python 比较 Excel 中的相邻单元格?

windows - 通过 GUID 打开设备

vba - 如何仅在当前行上运行代码

vba - 在已经打开的 excel 上使用 VBS 运行宏

vba - 检测 Outlook/回收状态并运行多个 Outlook 实例

vba - Excel VBA - alt keydown 事件在用户窗体上每隔一段时间触发一次