(VBA)从网络驱动器打开工作簿

时间:2018-05-17 13:53:51

标签: excel vba unc network-drive

在尝试打开位于网络文件夹上的工作簿时,我遇到了有关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")

1 个答案:

答案 0 :(得分:0)

这是我使用的代码:

Dim wb As Workbook

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