|
发表于 2015-9-8 11:12
|
显示全部楼层
本楼为最佳答案
- Sub tt()
- MsgBox "选择文件!"
- filename1 = Application.GetOpenFilename("All Files(*.*),*.*")
- If filename1 <> False Then
- Temp = Split(filename1, "")
- Sfile1 = Temp(UBound(Temp))
- Else
- MsgBox "No PT Program is Selected!"
- Exit Sub
- End If
-
- '################################################################################
- Dim arr(1 To 1000, 1 To 1) '把原文件读入数组arr
- fnum1 = FreeFile
- Open filename1 For Input As #fnum1
- Do While Not EOF(fnum1)
- n = n + 1
- Line Input #1, arr(n, 1) '读入每行
- Loop
- Close #fnum1
- '################################################################################
-
- Set d = CreateObject("scripting.dictionary")
- Set dd = CreateObject("scripting.dictionary")
- For i = 1 To n
- If InStr(arr(i, 1), "Group") > 0 Then Exit For
- Next
-
- For k = i + 2 To n '姓名和币种挂钩
- kk = kk + 1
- bz = IIf(kk <= 2, "美元", "人民币")
- xrr = Split(arr(k, 1), " ")
- For j = 2 To UBound(xrr)
- xname = Trim(xrr(j))
- d(xname) = bz
- Next
- Next
-
- For k = 3 To i - 1
- xrr = Split(arr(k, 1), " ")
- xname = xrr(1): je = xrr(2) '姓名,金额
- bz = d(xname)
- xkey = je & bz '金额+币种为key
- dd(xkey) = dd(xkey) + 1
- Next
- '################################################################################
- ActiveSheet.Cells.ClearContents '显示结果
- [a1].Resize(n, 1) = arr
- Range("f1") = "钱的种类"
- Range("g1") = "人数"
- [f2].Resize(dd.Count, 2) = Application.Transpose(Array(dd.keys, dd.items))
-
- End Sub
复制代码 |
|