2016-09-08 114 views
0

我正在制作电子表格,其中我将跟踪我的部门3D打印的所有内容。我有3个文件夹,每个打印的每个部分都有一样东西:一个CAD文件,一个STL文件和一个作业文件夹;所有这些都包含相同的部分名称,这些名称在电子表格中输入到单元格中,并用于查找所有文件/文件夹。我喜欢将电子表格超链接,以便通过简单地导航到电子表格中的该部分,轻松打开三者中的任意一个。如何搜索文件夹并超链接它的路径?

现在我有下面的代码部分,其需要在印刷部分从塔d的名称,并且发现在我的STL文件夹中的匹配STL,然后将其超链接到柱U.

For i = 4 To Range("D" & Rows.Count).End(xlUp).Row 
'follow through all entries in column D 

'--STL------------------------------------------------------------------------------------------------------ 
If (Len(Cells(i, 4)) > 1) Then 
    If (Len(Cells(i, 21)) = 0) Then 
     strFile = Dir$(path5w & Cells(i, 4) & "*.stl") 
     If (Len(strFile) > 1) Then 
      Cells(i, 21).Hyperlinks.Add Cells(i, 21), path5 & strFile, TextToDisplay:="STL" 
     Else 
      'No file was found that matches so do nothing 
     End If 
    Else 
    'Already hyperlinked, skip this cell 
    End If 
Else 
'Not a valid Name, do nothing 
End If 
Next 
End Sub 

我只需简单地复制这段代码并切换路径并切换.STL扩展名为我的CAD文件,并且对于这两者都很有用,但是我被困在作业文件夹中......我不知道如何获取我的代码找到一个文件夹,而不是一个文件。

我曾尝试过使用FileSystemObjects进行游戏,但我不完全理解如何使用它们,而且我可以找到的所有示例都是如何列出文件夹内的每个文件夹的示例,而不是如何实际搜索特定文件夹。

我也看了下这个例子:VBA to find multiple files但是,我又遇到了不理解如何使用它来搜索文件夹的问题,而不是列出所有文件夹。

所以为了更清楚我会举一个例子。假设我处理Part123.stl,当我想保存它时,它会创建一个文件夹ssys_Part123,并将其保存在名为Job Folders的文件夹中。现在我希望我的程序检查部分123的单元格D4,然后导航到作业文件夹,找到名为ssys_Part123的文件夹并将该文件夹超链接到V4。

我还没有非常牢固的编码把握,所以任何帮助总是不胜感激。

+1

“Dir”函数有第二个(可选)参数,它允许您基本指定“Atrribute”或文件类型。如果您将其设置为'vbDirectory',它将明确搜索文件夹。你想超链接到文件夹呢?或文件夹内的文件? – Kyle

+0

当我添加vbDirectory时,这工作...我觉得很愚蠢,我从来没有找到这些选项。 –

+0

马上就不知道一切!很高兴这工作。 – Kyle

回答

0

如果文件夹名称始终是ssys_ [PartName],那么您应该能够将字符串链接到文件夹,而不是尝试查找文件夹名称。

+0

这是我最初的计划,问题是当我以外的人创建文件时,他们喜欢在名称中添加随机废话,所以我想提前计划并假设它们可能并不总是我期望的名称。 –

相关问题