我有 Perl 背景,正在学习 Excel-VBA。在perl中,我们可以使用Data::Dumper来获取数据结构的转储。
这是来自 perl 的示例:
use strict;
use Data::Dumper;
my $hash={};
$hash->{key1} = [ 1, "b", "c" ]; # the value stored against key1 here is an array
$hash->{key2} = [ 4.56, "g", "2008-12-16 19:10 -08:00" ]; # the value stored against key2 here is an array
my $hash2={1=>['one','ONE']}; # this is a hash
$hash->{key3}=$hash2; # the value stored against key3 here is a hash
print Dumper($hash)."\n";
它产生以下输出:
$VAR1 = {
'key2' => [
'4.56',
'g',
'2008-12-16 19:10 -08:00'
],
'key1' => [
1,
'b',
'c'
],
'key3' => {
'1' => [
'one',
'ONE'
]
}
};
正如我之前提到的,我是 Excel-VBA 的新手并且正在学习它,因此请耐心等待我帮助我找到以下问题的答案:
- Excel-VBA 中有类似 perl 的 Data::Dumper 的东西吗?
- 如何使用 Scripting.Dictionary 对象在 Excel-VBA 中创建与上述完全相同的结构(即 $hash)?如何迭代该结构并检索针对该键存储的值?这种结构支持“exists”、“remove”、“add”等方法吗?
最佳答案
我不知道有什么内置机制可以满足您的要求。您必须创建一个“keyedArray”类来实现您想要的方法。弄清楚这一点将使您在 VBA 学习曲线上稳步前进。
一个好的起点是 http://www.cpearson.com/excel/classes.aspx
如果这对您没有帮助,请在评论中说明 - 我稍后可能有时间整理一个简短的示例。
关于Excel VBA – 如何创建和转储数组复杂结构的哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061660/