比如把C:\WINDOWS\system32目录下的文件格式分类汇总成
exe 格式文件 m 个
dll 格式文件 n 个
chm 格式文件 p 个
其他格式文件 q 个 已经做到,一次性获取所有文件名,并赋给一列数组,如何对给该数组进行分类汇总,汇总结果写在单元格里。
有没有对给数组进行分类汇总的例子或者代码,谢谢!
exe 格式文件 m 个
dll 格式文件 n 个
chm 格式文件 p 个
其他格式文件 q 个 已经做到,一次性获取所有文件名,并赋给一列数组,如何对给该数组进行分类汇总,汇总结果写在单元格里。
有没有对给数组进行分类汇总的例子或者代码,谢谢!
dim arr(N)
FOR I=0 TO ubound(arr,1)
'判断
NEXT I
Dim tFileName(10) As String
Dim extName As String
Dim i As Integer
Dim j As Integer
Dim Count As Integer
Me.Cls
'测试数据
Randomize Timer
For i = 0 To 10
t = Rnd * 10
If t < 3 Then
ext = ".EXE"
ElseIf t < 7 Then
ext = ".Com"
Else
ext = ".Html"
End If
tFileName(i) = "file" & i & ext
Next
Me.Print "FileName:" & vbCrLf & "================="
For i = 0 To 10
Me.Print tFileName(i)
Next
'计数
Me.Print vbCrLf & "Count:" & vbCrLf & "================="
For i = 0 To 10
If tFileName(i) <> "" Then
extName = Mid(tFileName(i), InStrRev(tFileName(i), ".") + 1)
Count = 0
For j = i To 10
If Right(tFileName(j), Len(extName)) = extName Then
Count = Count + 1
tFileName(j) = ""
End If
Next
Me.Print extName & " : " & Count
End If
Next
End Sub
剩下的就是怎样把它们放到数租里面了。
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As LongPrivate Const LB_FINDSTRINGEXACT = &H1A2'在循环中,取得一个文件名,并插入数组后
strExt = Mid(strFileName, InStrRev(strFileName, ".") + 1)
n = SendMessagebyString(List1.hWnd, LB_FINDSTRINGEXACT, -1, strExt)
If n = -1 Then
List1.AddItem strExt
List1.ItemData(List1.NewIndex) = 1
Else
List1.ItemData(n) = List1.ItemData(n) + 1
End If'最终,List1.List(Index) 是扩展名,List1.ItemData(Index) 是其汇总数