【发布时间】:2019-02-03 04:31:16
【问题描述】:
我想遍历一个文件夹并复制所有不包含 A6 中的“string1”、B6 中的“string2”、C6 中的“string3”、D6 中的“string4”的 excel 文件的名称。请注意,所有条件都应为真(AND 语句)。 应该测试的单元位于工作表 3 中,称为“ProjectOperation”。
以下代码复制了特定文件夹中所有 excel 的文件名,但是我很难实现条件。请帮忙。
Option Explicit
Sub SubDirList() 'Excel VBA process to loop through directories listing files
Dim sname As Variant
Dim sfil(1 To 1) As String
sfil(1) = "C:\Users\test" 'Change this path to suit.
For Each sname In sfil()
SelectFiles sname
Next sname
End Sub
Private Sub SelectFiles(sPath) 'Excel VBA to show file path name.
Dim Folder As Object
Dim file As Object
Dim fldr
Dim oFSO As Object
Dim i As Integer
'For Each file In Folder
' If checknameExistens(Folder.Files) Then
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set Folder = oFSO.GetFolder(sPath)
i = 1
For Each fldr In Folder.SubFolders
SelectFiles fldr.Path
Next fldr
For Each file In Folder.Files
'If checknameExistens(Folder.Files) Then
Range("A6536").End(xlUp)(2).Value = file
i = i + 1
Next file
Set oFSO = Nothing
End Sub
原代码来自以下链接:http://www.thesmallman.com/list-files-in-subdirectory/
【问题讨论】:
-
你有没有尝试过?这些条件是 AND 还是 OR?
-
你说的是哪张,总是第一张?
-
是的,我尝试了不同的东西,最新的是注释掉的部分'对于文件夹中的每个文件'如果 checknameExistens(Folder.Files) 那么但它不起作用,所以我删除了它。条件是 AND,它应该是名为“ProjectOperation”的工作表 3
-
那么我建议编辑帖子并添加附加信息。你怎么知道它总是第 3 页?
-
好的,我会这样做的。这是一个很好的问题 - 它是第 3 表或名为“ProjectOperation”的表
标签: vba excel loops directory conditional-statements