所有
我目前正在Excel中编写宏,并遇到了障碍。我通常用Ruby编写代码,所以我可能不会从正确的角度处理这个问题。
我知道这篇文章已被VBA标记,但我觉得我需要在Ruby中解释我的思维过程。我试图在VBA中创建一个哈希表,允许我根据标识符查找与日期相关的值。在ruby中,我将使用哈希实现此功能,如下所示。
hash = { 9385 => { '10/1/2014' => [2, 4, 6, 1, 6] } }
然后将以这种方式访问这些值:hash[9385]['10/1/2014'] => [2, 4, 6, 1, 6]
散列的密钥为9385
,这样我就可以访问10/1/2014
的关联数据并访问其中的数组。
我试图通过链接VBA中的字典对象来重新创建此功能。但是,我无法让字典对象重新创建可以在Ruby中使用哈希找到的层次结构。
有什么方法可以创建这种类型的功能吗?
谢谢。
答案 0 :(得分:0)
我们在Basic中有很多数据类型。我不认识Ruby,但字典会自行解决。
阵列。
字典
集合
断开连接的记录集
以及列表/数组的.NET类也可以在Basic中使用。 EG,一个数组对象(与数据类型不同),排序一个,等等。添加对mscorelib的引用。
我使用断开连接的记录集而不是字典。这是一个随机排序的代码段,它从stdin中读取行并在断开连接的记录集中随机化它们并写入stdout。
这是vbscript,但vbscript是合法的vb6。
cscript randomise.vbs <filename.txt
Set Arg = WScript.Arguments
set WshShell = createObject("Wscript.Shell")
Set Inp = WScript.Stdin
Set Outp = Wscript.Stdout
Randomize
Set rs = CreateObject("ADODB.Recordset")
With rs
.Fields.Append "RandomNumber", 4
.Fields.Append "Txt", 201, 5000
.Open
Do Until Inp.AtEndOfStream
.AddNew
.Fields("RandomNumber").value = Rnd() * 10000
.Fields("Txt").value = Inp.readline
.UpDate
Loop
.Sort = "RandomNumber"
Do While not .EOF
Outp.writeline .Fields("Txt").Value
.MoveNext
Loop
End With