快速背景:我为使用网络上的共享驱动器在员工之间共享信息的公司编写excel宏
问题:不同的员工在单独的字母下列出了相同的共享驱动器。例如,Susie将“Commissions Shared Drive”作为驱动器“Z”,但Betty将其作为驱动器“x”。
我将设计一个两个不同的人使用的宏,宏会遇到错误,因为它们有单独的驱动器号。 简单来说,由于驱动器号不同,代码中写入的文件位置对两个人都不正确。
当前解决方案:我目前拥有完全相同的宏的副本,并对文件位置进行了更改,以说明驱动器号的差异。这很烦人,因为每当我对一个文件进行更改时,我必须确保另一个文件完全相同。
问题:有没有办法可以在一个宏中考虑不同的驱动器号,这样我就不必复制具有不同地址的文件了?
提前致谢!
-Mike
答案 0 :(得分:4)
使用实际的网络路径。
例如,而不是像
这样的东西Z:\filename
使用
\\servername\foldername\filename
只要用户有权访问路径,无论驱动器映射如何,代码都会找到它。
编辑: 您可以查看this question及其答案,原因是您不应在代码中使用映射的驱动器号。 作为旁注,如果你使用的东西比Excel宏更不易更新,那么根本不在代码中实际存储路径是个好主意。相反,您将拥有代码查看以获取路径的文件。因此,您编写的内容将更长时间工作,而无需重新编译或修改。但同样,由于你只是在做一个Excel宏,我认为没有令人信服的理由不使用直接路径。
答案 1 :(得分:0)
@Daniel Cook我还找到了另一条可用于引用共享驱动器的路径。
如果您右键单击共享驱动器并转到属性> DFS(DFS是属性窗口中的选项卡)它们列出了一个可以工作的单独路径。我创建了一个宏来测试两个路径并且都工作。
然而,我的一位同事表示,他使用\ servername \ foldername \ filename的路径方法为另一名员工制作了一个宏,但由于某些原因,它在她的计算机上无效,但是当他使用其他路径时,共享驱动器属性下的DFS选项卡为她工作。
为什么\ servername \ foldername \ filename路径可能在一台计算机上而不是另一台计算机上运行?