Excel 我们可以用一条语句将字典项(数组)放入一个范围吗?

Excel 我们可以用一条语句将字典项(数组)放入一个范围吗?,excel,vbscript,vba,Excel,Vbscript,Vba,假设我有一个数组A16=45,25,36,88,A26=14,25,11,A36=11,21,20,25,48。现在我们可以借助一条语句将这些数组值放入行中,比如将所有行放入Excel的一个范围,比如说C1:R3范围 Dim R R = Split(Join(A1, ",") & "," & Join(A2, ",") & "," & Join(A3, ","), ",") Range("C5:T5").Value = R 现在我们可以做字典项了吗?它是一个数组

假设我有一个数组A16=45,25,36,88,A26=14,25,11,A36=11,21,20,25,48。现在我们可以借助一条语句将这些数组值放入行中,比如将所有行放入Excel的一个范围,比如说C1:R3范围

Dim R
R = Split(Join(A1, ",") & "," & Join(A2, ",") & "," & Join(A3, ","), ",")
Range("C5:T5").Value = R
现在我们可以做字典项了吗?它是一个数组,合并成一个1D数组并分配回一个范围

For Each ChilID In ChildIDs

    Redim ChildDetailArray(ArrIndex)
    ChildMatchNum=objExcel1.Application.WorksheetFunction.Match(ChilID, ob3.Columns(1), 0)
    ChildDetailArray=ob1.Range(ob1.Cells(ChildMatchNum,1),ob1.Cells(ChildMatchNum,ArrIndex+1)).Value
    ChildDic.Add ChilID,ChildDetailArray '(ChildDetailArray is an array)

Next
编辑1

上面的For循环也在做同样的事情。现在,当循环完成时,我希望Dic12和Dic13项的子详细信息需要收集在1D数组中

更新

谢谢

我们能用一句话把字典条目放进一个范围吗??是的,您可以将所有字典项放入一个范围

尝试此代码并清楚地解释/注释您需要的任何更改:

代码:

输出:

我们能用一个语句将字典项array放入一个范围吗??是的,您可以将所有字典项放入一个范围

尝试此代码并清楚地解释/注释您需要的任何更改:

代码:

输出:


@图凯,我在这里没有看到字典。。。但我已经按照标题为您提供了问题的答案。只要字典中有数据,就可以将这些项放入一维变量数组中。因此,您可以将其转换到所需的范围。重复一次,这与您昨天讨论的问题相同?@bonCodigo请与我联系编辑您想将字典中的两个1D数组项合并到一个1D数组中吗?@bonCodigo是的,先生!你现在完全抓住我了@邦科迪戈,请见见我EDIT@Tukai我在这里没有看到字典。。。但我已经按照标题为您提供了问题的答案。只要字典中有数据,就可以将这些项放入一维变量数组中。因此,您可以将其转换到所需的范围。重复一次,这与您昨天讨论的问题相同?@bonCodigo请与我联系编辑您想将字典中的两个1D数组项合并到一个1D数组中吗?@bonCodigo是的,先生!你现在完全抓住我了@bonCodigo请见见我编辑这很好,但我问了一些不同的问题。输出看起来和预期的一样好,但这样的合并是哪种说法?我认为它不在那里,我实际上是在寻找一种方法,通过这种方法,所有数组都将首先以适当的大小合并,然后在它们上执行传输将它们粘贴到Excel@Tukai,注释“-将多个1D数组连接成一个字符串。。。合并阵列。然后分割函数将其放入最后一个1D数组中。你不用担心这里的尺寸。一切都是动态的。您可能需要做的唯一一件事是运行for循环,将所有1D数组添加到字典中。然后循环字典以获取join语句的每个项1D数组。我真的希望这个连接的字符串不会超过字符限制…以及工作表列限制…是的!你的接球太完美了!我想知道在运行时,for循环何时结束,那么我应该如何形成您提供的merge语句!因为我使用child ID作为Dic密钥,而chld details作为每个密钥项的数组。在循环内部,我会怎么做?你能告诉我们你的子结构吗。当您没有显示您使用的这些对象的声明时,很难进行评论…………这很完美,但我问了一些不同的问题。输出看起来和预期的一样好,但这样的合并使用了哪种语句?我认为它不在那里,我实际上是在寻找一种方法,通过这种方法,所有数组都将首先以适当的大小合并,然后在它们上执行传输将它们粘贴到Excel@Tukai,注释“-将多个1D数组连接成一个字符串。。。合并阵列。然后分割函数将其放入最后一个1D数组中。你不用担心这里的尺寸。一切都是动态的。您可能需要做的唯一一件事是运行for循环,将所有1D数组添加到字典中。然后循环字典以获取join语句的每个项1D数组。我真的希望这个连接的字符串不会超过字符限制…以及工作表列限制…是的!你的接球太完美了!我想知道在运行时,for循环何时结束,那么我应该如何形成您提供的merge语句!因为我使用child ID作为Dic密钥,而chld details作为每个密钥项的数组。在循环内部,我会怎么做?你能告诉我们你的子结构吗。如果不显示您使用的这些对象的声明,则很难进行注释。。。。。。。。。。。。。。。。。
      suppose a process#20 has 2 child processes say #12,#13. now i used a dictionary object Dic

        Dic(12)=Arr(10,11,,,18) 'child details
        Dic(13)=Arr(5,8,9,,,) ' child details

    ***Output:***  `1D array say ArrMerger()=(10,11,,,18,5,8,9,,,)`
      strJoin = ","
For ChildKey In ChildDic.Keys

    strJoin=Join(ChildDic(ChildKey),",") & strJoin

Next
Option Explicit

Sub getMerged1DItems()
Dim d As Object, d2 As Object
Dim vArr As Variant
Dim vArr2 As Variant
Dim strJoin As String

    Set d = CreateObject("Scripting.Dictionary")
    Set d2 = CreateObject("Scripting.Dictionary")

    '-- assume you have items in your dictionary
    d.Add "Names", 1
    d.Add "Titles", 2
    d.Add "Jobs", 3
    d.Add "Education", 4
    d.Add "Experience", 5

    '-- add dictionary items into an 1D array
    vArr = d.Keys

    '-- add 1D arryas into d2 dictionary as items
    d2("v" & 1) = vArr
    d2("v" & 2) = vArr

    '-- join multiple 1D array items into one string delimitted by comma
    strJoin = Join(d2("v" & 1), ", ") & "," & Join(d2("v" & 2), ", ")

    '-- split the string by comma delimiter
    vArr2 = Split(strJoin, ",")

    '-- output to sheet using first 1D Array
    Sheets(1).Range("B2").Resize(1, _
             UBound(Application.Transpose(vArr))) = vArr

    '-- output to sheet using dictionary
    Sheets(1).Range("B4").Resize(1, _
             UBound(Application.Transpose(d.Keys))) = d.Keys

    'output to sheet using mergeed 1D array
    Sheets(1).Range("B7").Resize(1, _
             UBound(Application.Transpose(vArr2))) = vArr2

    Set d2 = Nothing
    Set d = Nothing

End Sub