vba - 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
寻找一种更好的自动化方法:
- 打开文件夹
- 从文件名路径(文件一)中提取字符串(即'555')
- 使用我的求和公式的字符串部分
- 下一个文件
提前致谢
解决方案
您可以使用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
推荐阅读
- python - 为什么单词边界在 python3 中不起作用?
- python - Python if 语句问题,可能是由于运算符
- php - 在两周内获取第二年的所有日期
- mysql - IF 3 或更多条件 QUERY MySQL
- python - Flask 上的 APScheduler 用于获取数据并保存在停止的位置
- python - 如何在 Python 中找到图形或矩阵的最大连通区域?
- intellij-idea - IntelliJ lombok 插件不兼容
- python - 合并两个具有不同键的字典列表
- c - 我们如何在 C 中删除数组中的重复元素?
- r - 在数据帧上执行延迟操作以计算 R 中的新值