我一直致力于将工作簿分发给其他人,而且大部分代码都依赖于保存在共享同步文件夹中的工作簿 - 让我们称之为" TEETH&# 34 ;.
对我来说,TEETH安装在这条道路上:"C:\Users\TEETH"
但是对于其他人来说,它已安装"C:\Users\desktop\TEETH"
或"C:\Users\My Documents\TEETH"
我想到了两个解决方案
1. Excel可以相对快速地查看C:\
目录的方式,找到文件夹然后在单元格中输出它的路径
2.让用户找到该文件夹,然后将路径转储到单元格
以上两种方式是否可行?或者有更好的方法吗?
谢谢!
答案 0 :(得分:1)
搜索整个驱动器非常耗时。我创建了getFileList来递归搜索返回数组中文件路径的所有文件夹和子文件夹。您可以通过在找到正确的目录时退出该函数来加速该过程。
我建议使用SaveSetting 保存注册表的路径,然后使用GetAllSettings
重新审核它HowTo_GetFileList宏向您展示如何过滤文件路径数组。
/**
* @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