Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 我们可以用一条语句将字典键分配给一列吗?_Vba_Excel_Vbscript - Fatal编程技术网

Vba 我们可以用一条语句将字典键分配给一列吗?

Vba 我们可以用一条语句将字典键分配给一列吗?,vba,excel,vbscript,Vba,Excel,Vbscript,我有大的字典键,我想将其插入excel工作表的列中。我通过以下操作完成了此操作: Dim a, d, i 'Create some variables Set d = CreateObject("Scripting.Dictionary") d.Add "a", "Athens" 'Add some keys and items. d.Add "b", "Belgrade" d.Add "c", "Cairo" a = d.keys 'Get the keys For i = 0 To d.

我有大的字典键,我想将其插入excel工作表的列中。我通过以下操作完成了此操作:

Dim a, d, i 'Create some variables
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens" 'Add some keys and items.
d.Add "b", "Belgrade"
d.Add "c", "Cairo"

a = d.keys 'Get the keys

For i = 0 To d.Count - 1 'Iterate the array
    ob.Cells(i + 1, 1).Value = a(i)
Next
但这能在一份声明中实现吗?比如说
obj2.Cells(1,1).Resize(dicP.Count,1)=a
我也试过这个,但它只把第一个键放在我定义的范围内,就像这样

Sub a()
    Dim d '<~~ Create some variable
    Dim sKeys()

    Set d = CreateObject("Scripting.Dictionary")
    d.Add "a", "Athens" 'Add some keys and items.
    d.Add "b", "Belgrade"
    d.Add "c", "Cairo"

    '~~> Get dictionary Keys
    sKeys = d.keys

    Range("A1").Resize(d.Count) = Application.Transpose(sKeys)
End Sub
suba()
我没有字典钥匙
sKeys=d.keys
范围(“A1”).Resize(d.Count)=应用程序转置(sKeys)
端接头

然后该列会被该Dic对象的所有键值填充吗?在我的例子中,指定的列只包含
sKeys(0)
值,并没有将数组的全部内容添加到该列中?我刚刚测试了它,它工作了。。。你能更新你正在使用的代码吗?你能在下面的帖子中帮我吗?我写了它,但没有得到我在描述中描述的预期输出@DanielCook已经在帮你解决这个问题了。我建议你耐心一点,让他来帮你;)您也可以使用循环来填充
词典
,而不是逐个添加;)