Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 2007 如何在excel VBA中读取目录中的某些文件_Excel 2007_Excel_Excel 2010_Vba - Fatal编程技术网

Excel 2007 如何在excel VBA中读取目录中的某些文件

Excel 2007 如何在excel VBA中读取目录中的某些文件,excel-2007,excel,excel-2010,vba,Excel 2007,Excel,Excel 2010,Vba,我想从目录中读取某些excel文件,然后用VBA在中打开它们 下面是一个例子: 目录:c:\temp 文件模式:isxxxxx 0123.xls(xxxxx表示文件名) 我尝试使用Application.FileSearch,但它在Excel2007中不起作用。有谁有好的建议吗 提前感谢您可以使用DIR查找与您的模式匹配的文件,即此代码打开这些文件,获取其路径,然后再次关闭这些文件 如果需要查看子文件夹,可以使代码递归 Sub GetFiles() Dim strFolder As St

我想从目录中读取某些excel文件,然后用VBA在中打开它们

下面是一个例子:
目录:
c:\temp

文件模式:is
xxxxx 0123.xls
(xxxxx表示文件名)

我尝试使用
Application.FileSearch
,但它在Excel2007中不起作用。有谁有好的建议吗


提前感谢

您可以使用
DIR
查找与您的模式匹配的文件,即此代码打开这些文件,获取其路径,然后再次关闭这些文件

如果需要查看子文件夹,可以使代码递归

Sub GetFiles()
    Dim strFolder As String
    Dim strFileName As String
    Dim wb As Workbook
    strFolder = "C:\temp"
    strFileName = Dir(strFolder & "\*123.xls")
    Do While Len(strFileName) > 0
        Set wb = Workbooks.Open(strFileName)
        Debug.Print wb.FullName
        wb.Close False
        strFileName = Dir
    Loop
End Sub

您可以使用
DIR
查找与您的模式匹配的文件,即此代码打开这些文件,获取其路径,然后再次关闭这些文件

如果需要查看子文件夹,可以使代码递归

Sub GetFiles()
    Dim strFolder As String
    Dim strFileName As String
    Dim wb As Workbook
    strFolder = "C:\temp"
    strFileName = Dir(strFolder & "\*123.xls")
    Do While Len(strFileName) > 0
        Set wb = Workbooks.Open(strFileName)
        Debug.Print wb.FullName
        wb.Close False
        strFileName = Dir
    Loop
End Sub

你需要如何处理这些文件?可能有一个更好的解决方案,而不是遍历并打开每个文件。您需要如何处理这些文件?可能有一个更好的解决方案,而不是循环通过并打开它们中的每一个。我无法理解为什么他们删除了application.filesearch:)顺便说一句,因为用户使用的是Excel 2007,您可能想将“*123.xls”更改为“*123.xls*”@SiddharthRout通常我会做那个通配符建议(和您一样值得提出),但问题确实指定了“.xls”+1。我无法理解为什么他们删除了application.filesearch:)顺便说一句,因为用户使用的是Excel 2007,您可能想将“*123.xls”更改为“*123.xls*”@SiddharthRout通常我会做那个通配符建议(和您一样值得提出),但问题确实指定了“.xls”