我正在尝试在JavaScript中创建全局唯一标识符.我不确定所有浏览器上有哪些例程,"随机"和内置随机数生成器的种子等等.
GUID/UUID应至少为32个字符,并应保持在ASCII范围内,以避免传递它们时出现问题.
只是想知道,VBA与VB .NET的PadLeft和PadRight方法有什么相同之处吗?
到目前为止,每当我想要一个字符串并使其具有前导空格的固定长度时,我会根据字符串的长度执行For ... Next循环.
例如,我将使用以下代码将字符串格式化为带有前导空格的8个字符:
intOrdNoLen = Len(strOrdNo)
For i = 1 To (8 - intOrdNoLen) Step 1
strOrdNo = " " & strOrdNo
Next
Run Code Online (Sandbox Code Playgroud)
有没有办法在VBA中用更少的行做同样的事情?
我需要一个函数来向Excel中的单元格添加GUID.我在stackoverflow上找到了上一个问题,但它无效.它建议以下功能:
=CONCATENATE(DEC2HEX(RANDBETWEEN(0,4294967295),8),"-",DEC2HEX(RANDBETWEEN(0,6553??5),4),"-
",DEC2HEX(RANDBETWEEN(16384,20479),4),"-",DEC2HEX(RANDBETWEEN(32768,49151??),4),"-
",DEC2HEX(RANDBETWEEN(0,65535),4),DEC2HEX(RANDBETWEEN(0,4294967295),8))
Run Code Online (Sandbox Code Playgroud)
我一直无法使concatenate方法工作,所以尝试使用"&"图来连接.这似乎有效,但后来我在第二个DEX2HEX块上出现了一个莫名其妙的错误:DEC2HEX(RANDBETWEEN(0,6553 5),4).Excel公式评估员说这是无效的,但我似乎无法弄清楚为什么.有任何想法吗?
我相信这个问题是最近更新到MS Office/Access或Windows 10的结果.当我运行此代码时:
Dim s As String
With CreateObject("Scriptlet.TypeLib")
s = Left(.Guid, 9)
newguidx = Right(s, 8)
End With
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:With语句拒绝权限.这是新的,仅在我的管理员更新我们的系统后才会出现.我没有选择回滚更新.任何人遇到这个并有一个解决方案吗?
操作系统:Windows 7企业版访问版:2010
谢谢
为什么这个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
希望生成一个独特的值来保存报价订单,方便召回.除了在1秒内点击之外,这个数字是否会重复.
idNumber = Application.Worksheetfunction.Roundup(DateValue(Now) * TimeValue(Now),0)
Run Code Online (Sandbox Code Playgroud)