0

我有一种情况,我的 Dictionary 对象Keys只是行号,并且Items是每一行的详细信息(即 Item 是一维数组)。

现在借助以下代码,我可以将行详细信息从 Dictionary Items(arrays) 推回行。但是我们可以一行一行地做而不是一个接一个吗?

Sub DataPushBackToSheet(DicTotDurations,DicHoldData,ob9)

    Dim Key,ColumntoStart,LastColNumber

    ColumntoStart = objExcel1.Application.WorksheetFunction.Match("Parent Business Process ID", ob9.Rows(1), 0) + 1
    LastColNumber = objExcel1.Application.WorksheetFunction.CountA(ob9.Rows(1))

    For Each Key in DicHoldData.Keys

         ob9.Range(ob9.Cells(Key,ColumntoStart),ob9.Cells(Key,ColumntoStart)).Resize(1, UBound(DicHoldData.Item(Key)) + 1).Value = DicHoldData.Item(Key)

    Next

End Sub
4

1 回答 1

1

中,您可以直接转储项目或密钥

VBS

Dim objExcel
Dim objWB
Dim objDic
Dim objKeys
Set objExcel = CreateObject("excel.application")
Set objWB = objExcel.Workbooks.Add
Set objDic = CreateObject("scripting.dictionary")
objDic.Add "apple", 1
objDic.Add "pear", 2
objDic.Add "turkey", 3
objKeys = objDic.keys
objWB.Sheets(1).Range("a1").Resize(UBound(objKeys) + 1) = objExcel.Transpose(objKeys)

VBA

Sub DummyKeys()
Dim objDic
Dim objKeys
Set objDic = CreateObject("scripting.dictionary")
objDic.Add "apple", 1
objDic.Add "pear", 2
objDic.Add "turkey", 3
objKeys = objDic.keys
Range("a1").Resize(UBound(objKeys) + 1) = Application.Transpose(objKeys)
End Sub
于 2012-12-28T11:44:09.863 回答