【问题标题】:Need Help Cross Referencing a File Tree with a Bill of Materials in Excel需要帮助在 Excel 中使用材料清单交叉引用文件树
【发布时间】:2018-05-21 19:45:53
【问题描述】:

我是一家工程公司的实习生,我的任务是从文件目录中编译缺失的 CAD 文件列表。我一直在使用物料清单手动检查每个文件,但是对于具有 8000 多个文件的较大产品,我想知道是否有办法自动进行此检查。我现在有 Excel 中的 BOM,并且我注意到 CAD 模型和 CAD 图纸是否都单独用于每个零件编号。检查300个零件的过程足够长,我无法想象做8000+!

我的问题是: 有什么方法可以自动搜索 excel 中的文件名与文件树中的文件名,如果该文件存在或不存在,则在 excel 中记录该文件名?

【问题讨论】:

  • 到目前为止你有什么尝试?

标签: excel automation generator cross-reference


【解决方案1】:

鉴于您正在处理的项目数量,您可能希望将您要查找的文件名加载到一个数组中,并将在您的目录中找到的文件名加载到一个单独的数组中。然后在里面进行比较。这是一个基本程序,用于检查单个目录中的单个文件,为您提供一些指导。

edit 刚刚意识到这是一个错误的方向,因为您可能需要将文件名等加载到数组中。今晚晚些时候我可以尝试解决这个问题。

Sub scanDirectory()

    Dim path As String
    Dim currentPath As String

    Dim nameOfFile As String

    nameOfFile = Sheets("sheet1").Cells(1, 1)

    'put the path to your folder here along with an \
    path = "Z:\New folder\"

    currentPath = Dir(path)

    Do Until currentPath = vbNullString
        Debug.Print currentPath
        If currentPath = nameOfFile Then
            Sheets("sheet1").Cells(1, 2) = "FILEFOUND"
            Exit Do 
        End If
        currentPath = Dir()
    Loop

End Sub

【讨论】:

  • 感谢您迄今为止的帮助!但是,当我尝试运行时出现错误=编译错误:Exit For not within For...Next,Exit For 突出显示
  • 应该是Exit Do not Exit For。已编辑。这只查找单个文件,但结构基本相同。正如我所说,考虑到匹配的数量,您可能希望将 ws 中的文件名加载到数组中,并可能将您正在搜索的文件夹中的文件名加载到数组中,然后比较
  • 非常感谢!您如何建议将文件名添加到数组中?我现在遇到“运行时错误'9':第 8 行的下标超出范围
  • 你把“Z:\New folder\”改成你自己的路径了吗?
  • 我发现了问题,工作表名称不正确。
猜你喜欢
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多