collections最大尺寸

这是我的代码:

Sub isdofsodjisf48023jroi23f984444444jiodfiosj12348023jroi23f98() Dim colFiles As New Collection RecursiveDir colFiles, "C:\Documents and Settings\Alex Gordon\Desktop\testing\files\", "*.xls", True Dim vFile As Variant For Each vFile In colFiles Call writeincells(vFile) Next vFile End Sub Public Function RecursiveDir(colFiles As Collection, _ strFolder As String, _ strFileSpec As String, _ bIncludeSubfolders As Boolean) Dim strTemp As String Dim colFolders As New Collection Dim vFolderName As Variant 'Add files in strFolder matching strFileSpec to colFiles strFolder = TrailingSlash(strFolder) strTemp = Dir(strFolder & strFileSpec) Do While strTemp <> vbNullString colFiles.Add strFolder & strTemp strTemp = Dir Loop If bIncludeSubfolders Then 'Fill colFolders with list of subdirectories of strFolder strTemp = Dir(strFolder, vbDirectory) Do While strTemp <> vbNullString If (strTemp <> ".") And (strTemp <> "..") Then If (GetAttr(strFolder & strTemp) And vbDirectory) <> 0 Then colFolders.Add strTemp End If End If strTemp = Dir Loop 'Call RecursiveDir for each subfolder in colFolders For Each vFolderName In colFolders Call RecursiveDir(colFiles, strFolder & vFolderName, strFileSpec, True) Next vFolderName End If End Function Public Function TrailingSlash(strFolder As String) As String If Len(strFolder) > 0 Then If Right(strFolder, 1) = "\" Then TrailingSlash = strFolder Else TrailingSlash = strFolder & "\" End If End If End Function 

我正在用目录结构中的文件名列表填充一个Collection。

我有2000个文件,但收集只返回256.有谁知道是否有最大数量,它不会过去?

如果是这样,你可以请build议一个更好的方式来编写这个macros,以便它捕获所有2000个文件?

该代码在Excel 2007中工作正常。也许发生的是您正在尝试在debugging模式下观看集合。 debugging器只显示前256个项目。

如何断开连接的logging集? 这个线程是关于VBScript的,但是和VBA非常相似:

如何使用VBScript对数组进行sorting?

Interesting Posts