VBA进阶 | Dictionary对象应用大全8:示例(续1)

VBA进阶 | Dictionary对象应用大全8:示例(续1)

示例5:合并记录

工作表列

A

中的记录的键,列

B

是记录的数据内容;列

E

包含列

A

中的键,列

F

包含要附加的内容。下面的代码合并以上

4

列中的数据为键和相应的记录内容:

SubRecordsAppend()

    Dim sn, sp, st, j

sn= Sheets("Sheet4").Cells(1).CurrentRegion.Resize(, 3)

sp= Sheets("sheet4").Cells(1, 5).CurrentRegion

 

    WithCreateObject("scripting.dictionary")

        For j = 1 To UBound(sn)

            .Item(sn(j, 1)) = Application.Index(sn,j, 0)

        Next

 

        For j = 1 To UBound(sp)

st= .Item(sp(j, 1))

st(3)= sp(j, 2)

            .Item(sn(j, 1)) =Application.Index(st, 0, 0)

        Next

 

Sheets("Sheet4").Cells(1,10).Resize(.Count, UBound(sn, 2)) = Application.Index(.Items, 0, 0)

    End With

EndSub

 

示例6:合并工作表

下面的代码将工作簿中的所有工作表按顺序合并到名为

total

的工作表中:

SubIntegrationSheets()

    Dim sh, it

    WithCreateObject("scripting.dictionary")

        For Each sh In Sheets

            .Item(sh.Name) = sh.UsedRange

        Next

Sheets.Add.Name ="total"

 

        For Each it In .Items

Sheets("total").Cells(Rows.Count,1).End(xlUp).Offset(1).Resize(UBound(it), UBound(it, 2)) = it

        Next

    End With

EndSub

 

示例7:合并CSV文件

SubIntegratieCSV()

    Dim sn, j, it

sn=Split(CreateObject("wscript.shell").exec("cmd/c Dir ""G:\OF\*.csv"" /b").StdOut.ReadAll, vbCrLf)

 

    WithCreateObject("scripting.dictionary")

        For j = 0 To UBound(sn)

            .Item(sn(j)) =GetObject("G:\OF\" &sn(j)).Sheets(1).UsedRange.Value

GetObject("G:\OF\"&sn(j)).Close False

        Next

 

Sheets.Add.Name ="total"

 

        For Each it In .Items

Sheets("total").Cells(Rows.Count,1).End(xlUp).Offset(1).Resize(UBound(it),UBound(it,2)) = it

        Next

    End With

EndSub

 



本文属原创文章,转载请注明出处。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎关注

[

完美

Excel

]

微信公众号:

方法

1

—在微信通讯录中搜索“

完美

Excel

”或者“

excelperfect

”后点击关注。

方法

2

—扫一扫下面的二维码

VBA进阶 | Dictionary对象应用大全8:示例(续1)