2013-10-29 21 views
2

這是一個非常簡短的問題,但其他任何網上似乎都知道答案。使用完整的網絡名稱更改表名打開文件

當我這樣做:

Workbooks.Open ("Y:\ME\Trends.xlsm") 

一切都很好,但是並一切正常,當我這樣做:

Workbooks.Open("\\*full network name*\ME\Trends.xlsm") 

圖表名稱發生變化。該工作手冊基本上是10個圖表,每個圖表都有不同的名稱。當打開完整的網絡名稱時,它仍然打開,但表格名稱變爲「圖表1」,「圖表2」等。是否有修復?

+0

如果您想解決任何問題,您需要先找到導致其行爲的原因。你認爲造成這種情況的原因是因爲從網絡位置打開它可能不一定是原因。這是一個值得信賴的地點嗎宏是否啓用?是否有任何Auto_Open或Workbook_Open事件代碼? – 2013-10-29 12:10:23

+0

它是受信任的,並且啓用了宏。我從另一個工作簿自動打開它,這是我唯一擁有的一行。所以基本上,這一行是我的整個代碼,只是在它的周圍有'Sub Auto_Open'和'End Sub'。所以,就我所看到的來說,如果這是唯一的一行,而且只有當我取出'Y:'時纔會出現錯誤,這是VBA立場中唯一的錯誤來源,除非有默認選項可能會阻止。 –

+1

嘗試在Run(Windows + R)中複製你的路徑並測試它是否打開。 – Makah

回答

1

我無法重現此問題,但它可能下面的替代方法來打開工作簿可能會有所幫助。

Option Explicit 
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

Sub OpenTest() 
Dim objXL As Object 
Dim oShell As Object 
Dim strExcel As String 
Dim WBPath As String 

strExcel = Chr(34) & "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" & Chr(34) & " /e " 

WBPath = "\\*full network name*\ME\Trends.xlsm" 

Set oShell = CreateObject("WScript.Shell") 
Set objXL = Nothing 
oShell.Exec (strExcel & Chr(34) & WBPath & Chr(34)) 
Sleep 2000 
Set objXL = GetObject(WBPath).Application 
objXL.Application.Goto objXL.Sheets(1).Range("A1"), True 
Set objXL = Nothing 
End Sub 
+0

@B哈特尼斯!再次,我假設這只是我的個人網絡錯誤,而不是代碼中,但是這個工作很完美。感謝您的建議! –

+0

Sidenote我的辦公室文件夾是\\ Office14'不是12,如果其他人看着這個,這就是我必須改變的一切(以及網絡名稱)。 –

+0

@JoeLaviano - 我很高興聽到它爲你工作。我讚賞後續:) –

相關問題