2013-11-26 51 views
0

特定的文件夹/文件我已经做一个宏读取所有文件夹1文件夹 - 像路径:Excel VBA中忽略目录

C:\folder\folder\ 

与结果

C:\folder\folder\design 

C:\folder\folder\sheetA 

我必须补充一个条件:如果C:\ folder\folder\design,宏将继续而不读取设计文件夹内的内容。

文件夹之前添加更多的目录,所以主路径变为:C:\folder\*,而忽略文本文件

的图解说明我的问题:

enter image description here

我的代码:

Sub readDir() 

Const sMainPath As String = "C:\Users\User\Desktop\excel\testing\" 
Dim sMain As String, sPathSeek As String, sPathMatch As String 
Dim i As Integer, sFolders As String, x As Integer, n As Integer 
i = 0 
x = 2 
sPathSeek = sMainPath 

sMain = Dir(sPathSeek, vbDirectory) 

    Do While Len(sMain) > 0 
     If Left(sMain, 1) <> "." Then 

      mainDir = sMainPath & sMain & "\" 

      'Call readFolder(mainDir) 

     End If 
     sMain = Dir 

    Loop 
End Sub 
+1

你试过这些,并且它们工作吗?如果没有,发生了什么事情,这和你的预期有什么不同?仅供参考,如果你这样做:你不能嵌套调用'Dir()' - 例如。如果调用过程当前位于Dir()循环的中间,则''readFolder()'方法不能使用'Dir()'。在开始另一个循环之前,你需要结束第一个循环。为了解决这个问题,你必须先收集(例如)一个集合中的项目,然后再将它们传递给另一个Dir()使用。 –

+0

两个代码都能正常工作,但我需要添加特定的文件夹/文件来忽略。之前,我调用文件夹中的所有文件(当我测试时,只包含文件夹,没有其他),但添加其他文件类型(如.txt)时出现问题(情况1)和添加文件夹设计(情况2),因为设计仅包含img文件,而不是txt文件 – Aldin

+0

仅供参考第一个代码将调用第二个代码 – Aldin

回答

1

评论,转贴为答案因为它适合你:

If mainDir = "C:\folder\folder\design" Then 
    'Do Nothing 
Else 
    'Do stuff 
End If