使用Excel VBA查找特定文件夹

时间:2016-10-08 03:18:35

标签: excel vba excel-vba

我一直致力于将工作簿分发给其他人,而且大部分代码都依赖于保存在共享同步文件夹中的工作簿 - 让我们称之为" TEETH&# 34 ;.

对我来说,TEETH安装在这条道路上:"C:\Users\TEETH"但是对于其他人来说,它已安装"C:\Users\desktop\TEETH""C:\Users\My Documents\TEETH"

我想到了两个解决方案 1. Excel可以相对快速地查看C:\目录的方式,找到文件夹然后在单元格中输出它的路径 2.让用户找到该文件夹​​,然后将路径转储到单元格

以上两种方式是否可行?或者有更好的方法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

搜索整个驱动​​器非常耗时。我创建了getFileList来递归搜索返回数组中文件路径的所有文件夹和子文件夹。您可以通过在找到正确的目录时退出该函数来加速该过程。

我建议使用SaveSetting 保存注册表的路径,然后使用GetAllSettings

重新审核它

HowTo_GetFileList宏向您展示如何过滤文件路径数组。

enter image description here

/**
 * @ORM\ManyToOne(targetEntity="InSubLinea", inversedBy="InProducto", fetch="EAGER")
 * @ORM\JoinColumn(name="id_sub_linea", referencedColumnName="id")
 */
protected $subLinea;

/**
 * @ORM\ManyToOne(targetEntity="InUnidadMedida", inversedBy="InProducto", fetch="EAGER")
 * @ORM\JoinColumn(name="id_unidad_medida", referencedColumnName="id")
 */
protected $unidadMedida;

最有效的选择是使LDAP查询返回共享文件夹列表。来自VBSEditor.com的这个Sample Script就是这样做的。这需要相当多的Active Directory知识。

答案 1 :(得分:0)

这不是更复杂的答案,只是一个打开文件夹选择框并返回包含所选路径的字符串的函数。我把它放在我的大多数应用程序中,每次要运行时选择一个文件夹代码不是很耗时,而且非常稳定。

Public Function FolderSelection() As String
    Dim objFD As Object
    Dim strOut As String

    strOut = vbNullString

    Set objFD = Application.FileDialog(4)

    objFD.Title = 'the title you want to show
    objFD.InitialFileName = 'standard path

    If objFD.Show = -1 Then
        strOut = objFD.SelectedItems(1)
    End If

    Set objFD = Nothing
    FolderSelection = strOut

End Function