本帖最后由 张雄友 于 2015-4-2 22:46 编辑
一个后缀问题:正常情况下EXCEL 版本的后缀是:03xls 高版本xls*,而且默认是小写的,但今天发现如果有人人为地将其扩展名
如:xls 改成大小写不一的:如 XLs, xlS ,xLs,XLS,xLS 等 等 ,就会对某些后缀不一致的工作簿漏了。花了二天才发现这个问题!!!!!
Sub GetFiles(ByVal Folder As Object, ByRef arrf$(), ByRef mf&)
Dim SubFolder As Object
Dim File As Object
For Each File In Folder.Files
If File.Name Like "*.xls*" And InStr(File.Name, ThisWorkbook.Name) = 0 Then'默认情况OK!
mf = mf + 1
ReDim Preserve arrf(1 To 2, 1 To mf)
arrf(1, mf) = File.Name
arrf(2, mf) = Folder.Path
End If
Next
For Each SubFolder In Folder.SubFolders
Call GetFiles(SubFolder, arrf, mf)
Next
End Sub
由于情况不一,特改成如下,当然是不完全统计:
Sub GetFiles(ByVal Folder As Object, ByRef arrf$(), ByRef mf&)
Dim SubFolder As Object
Dim File As Object
For Each File In Folder.Files
If File.Name Like "*.xls*" Or File.Name Like "*.XLS*" Or File.Name Like "*.xLS*" Or File.Name Like "*.XlS*" Or File.Name Like "*.XLs*" Or File.Name Like "*.xlS*" Then
If InStr(File.Name, ThisWorkbook.Name) = 0 Then
mf = mf + 1
ReDim Preserve arrf(1 To 2, 1 To mf)
arrf(1, mf) = File.Name
arrf(2, mf) = Folder.Path
End If
End If
Next
For Each SubFolder In Folder.SubFolders
Call GetFiles(SubFolder, arrf, mf)
Next
End Sub
现在的问题是:红色代码能否简化?以适应某些人为的因素导致的漏数据问题。
If LCase(File.Name) Like "*.xls*" then
|