麻烦大家帮我看看这个VBA程序哪里有错误??解决就给分~~~~~~~

烈火焚身 2008-06-20 11:48:56
Public Sub PathName()

mPath = "D:\ScienceDirect"
If Right(mPath, 1) <> "\" Then
mPath = mPath & "\"
End If

myName = Dir(mPath, vbDirectory)
Do While myName <> ""
If myName <> "." And myName <> ".." Then
If (GetAttr(mPath & myName) And vbDirectory) = vbDirectory Then

mPath1 = mPath & myName & "\"
Debug.Print mPath & myName & "\", myName, mPath1
PathName1 (mPath1)

End If
End If
myName = Dir
Loop
End Sub


Public Sub PathName1(mPath1 As String)

myName1 = Dir(mPath1, vbDirectory)
Do While myName1 <> ""
If myName1 <> "." And myName1 <> ".." Then
If (GetAttr(mPath1 & myName1) And vbDirectory) = vbDirectory Then

Debug.Print mPath1 & myName1 & "\", myName1
mPath2 = mPath1 & myName1 & "\"

End If
End If
myName1 = Dir
Loop
End Sub
...全文
115 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
烈火焚身 2008-06-20
  • 打赏
  • 举报
回复
非常感谢WWWWA的热心帮助
问题已经解决
马上给分节帖
Edidu 2008-06-20
  • 打赏
  • 举报
回复
遍历某文件夹里面的所有文件?
直接用vbs中的fso.getfolder的files就可以了
楼上的正解,楼主可以结贴了。
WWWWA 2008-06-20
  • 打赏
  • 举报
回复
引用MICROSOFT SCRIPTING RUNTIME
Private Sub 命令14_Click()
j = 0
k = 0
MyProc1 "d:\"
MsgBox k & " files " & j & " folders "
End Sub

Sub MyProc1(ByVal Folder As String)
Dim fso As New FileSystemObject
Dim objFile, objFolder
Set objFolder = fso.GetFolder(Folder)
k = k + objFolder.Files.Count
'For Each objFile In objFolder.Files
'K = K + 1
'Next
For Each objFolder In objFolder.SubFolders
j = j + 1
'MsgBox objFolder
MyProc1 objFolder '递归遍历整颗树
Next
End Sub
烈火焚身 2008-06-20
  • 打赏
  • 举报
回复
发一个可以么??
我看看
WWWWA 2008-06-20
  • 打赏
  • 举报
回复
你的程序复杂的,我用FSO简单得多
烈火焚身 2008-06-20
  • 打赏
  • 举报
回复
WWWWA我给你发消息了
烈火焚身 2008-06-20
  • 打赏
  • 举报
回复
myName = Dir
这个无效
我想应该是Dir的原因??
WWWWA 2008-06-20
  • 打赏
  • 举报
回复
在模块、程序中查找GetAttr ,是什么无效
烈火焚身 2008-06-20
  • 打赏
  • 举报
回复
我也不是很清楚
不过
就是想把所有的2层的文件夹全部遍历出来
如果不调用参数就是对的
一调用就出错了
试试看
Public Sub PathName()

mPath = "D:\ScienceDirect"
If Right(mPath, 1) <> "\" Then
mPath = mPath & "\"
End If

myName = Dir(mPath, vbDirectory)
Do While myName <> ""
If myName <> "." And myName <> ".." Then
If (GetAttr(mPath & myName) And vbDirectory) = vbDirectory Then

mPath1 = mPath & myName & "\"
Debug.Print mPath & myName & "\", myName, mPath1
'PathName1 (mPath1)

End If
End If
myName = Dir
Loop
End Sub

WWWWA 2008-06-20
  • 打赏
  • 举报
回复
GetAttr
是什么,函数、过程、API?
烈火焚身 2008-06-20
  • 打赏
  • 举报
回复
我想通过调用函数遍历文件.
mPath = "D:\ScienceDirect"
你可以随便设置一个路径
看看
说什么无效??
执行一下
在Access模块中
WWWWA 2008-06-20
  • 打赏
  • 举报
回复
什么问题?。。。
。。。
烈火焚身 2008-06-20
  • 打赏
  • 举报
回复
晕了!!!
咋就没有人?
烈火焚身 2008-06-20
  • 打赏
  • 举报
回复
分少了么???
怎么没有人回答啊??
烈火焚身 2008-06-20
  • 打赏
  • 举报
回复
怎么没有人呢???????????????????????

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧