首页 > 解决方案 > VBA 从文件路径中提取字符串

问题描述

寻求帮助 - 一种从文件名中提取字符串并手动使用公式的字符串部分执行任务的方法。现在我可以从文件夹中提取文件并使用我程序的字符串部分

C:\ XXXX_555_GGGGG.xlsx  ( extraxt '555")

C:\ XXXX_101_GGGGG.xlsx  (extraxt"101")

....cont!

我们可以手动为每个文件执行此操作:

Sub Combined()
    wb.Sheets("Sheet1").Range("b2").Value = _
         Application.SumIfs(Sheet1.Columns(2), Sheet1.Columns(1), "555")
End Sub


Sub Combined1()
    wb.Sheets("Sheet1").Range("b3").Value = _
         Application.SumIfs(Sheet1.Columns(2), Sheet1.Columns(1), "101")

End Sub 

寻找一种更好的自动化方法:

提前致谢

标签: vbastring

解决方案


您可以使用Dir()遍历文件夹中的文件

Sub tester()
    Dim c As Range, f, arr, wb As Workbook
    
    Set wb = ThisWorkbook 'or whatever
    Set c = wb.Sheets("Sheet1").Range("B2")
    
    f = Dir("C:\FolderTest\*.xlsx")
    Do While Len(f) > 0
        arr = Split(f, "_")
        If UBound(arr) = 2 Then 'check file pattern
            c.Value = Application.SumIfs(Sheet1.Columns(2), Sheet1.Columns(1), arr(1))
            Set c = c.Offset(1, 0)
        End If
        f = Dir()
    Loop
End Sub

推荐阅读