【问题标题】:(VBA) Open Workbook from network drive(VBA) 从网络驱动器打开工作簿
【发布时间】:2018-10-27 19:53:44
【问题描述】:

我在尝试打开位于网络文件夹中的工作簿时遇到了关于 workbook.open 函数的问题。 VBA 宏导致

“1004 错误”

没有任何具体原因,只是文件路径不可用。

我已经使用谷歌和这个社区很长时间来解决这个问题,下面是我尝试过的步骤,最后是我唯一的解决方案。 我的问题是:为什么 Excel 会这样,下次我该怎么办?

  • 最初,用户在源工作簿内的单元格中输入文件路径,并保存在计算机本地。 VBA 代码获取单元格的输入(我尝试了 Range("K4") 和 Range("K4").value)并将其与字符串对齐,该字符串可见(调试时变量观察)但在出现时失败到 Workbook.open 函数。

  • 我尝试使用用户特定的网络路径(例如“G:/...”)以及通用网络约定路径(“\\xxx.xxx...”),因为它更准确,因为并非每个用户都将网络文件夹映射到相同的驱动器号。

  • 最后,我唯一可行的解​​决方案是在 VBA 编辑器中使用 UNC 路径硬编码路径。

为什么会这样?在这种情况下,网络路径不会改变,但是当需要将文件夹写入单元格时,我会丢失。

感谢您的反馈!

编辑: 基本上就是这段代码...我删除了不必要的部分...

'Variablen
Dim MA$, Monat$, Fehltag$, Ort$, Projekt$, FilePlanung$, MainString$, NeuerString$
Dim LastRowM&, StartZelleP&, ProjektP&
Dim wb, wbP As Workbook
Dim wsK, wsS, wsM As Worksheet
Dim StartDatumM As Date
Dim array_monate As Variant

'Arbeitsblätter
Set wb = ThisWorkbook
Set wsK = wb.Sheets("Kopfblatt")
Set wsS = wb.Sheets("Stammdaten")
Set wsM = wb.ActiveSheet

'Fix
MA = wsK.Range("D2")
Monat = wsM.Name
FilePlanung = wsS.Range("K4")

Application.ScreenUpdating = False
Set wbP = Workbooks.Open(fileName:=FilePlanung)
'Set wbP = Workbooks.Open(FilePlanung) --> Tried also this and many other ways...
Set wsP = wbP.Sheets("aktuell")

【问题讨论】:

  • 从 unc 路径打开 excel 文件对我来说很好。从单元格中抓取路径时也是如此。
  • @gizlmo 你能粘贴你使用的代码吗?是否也可能是单元格的格式问题?

标签: excel vba unc network-drive


【解决方案1】:

这是我使用的代码:

Dim wb As Workbook

Set wb = Workbooks.Open(Worksheets("Sheet1").Range("A1").Value)

【讨论】:

  • 所以基本一样..真令人沮丧。
猜你喜欢
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多