2011-11-01 52 views
0

我有一個項目,我需要從zip中提取文件,然後打開該文件。我上週工作的代碼:將文件解壓縮到VBA中的遠程目錄

With CreateObject("Shell.Application") 
     .Namespace("" & UnZippedFolder).copyhere .Namespace("" & ZipFolder & _ 
         ZipFile).Items 
End With 

當我試圖在本週運行它,我得到了一堆錯誤,因爲我試圖調試。

我已經從'簡單'(上面)移動到'我能弄明白'(如下)。我目前收到錯誤「對象變量或塊變量未設置」。在最後選擇具有'*'的行。我無法弄清楚爲什麼會拋出這個錯誤,或者如何解決這個錯誤。

Dim WeekNum As Integer 
Dim ZipFolder As String 
Dim ZipFile As String 
Dim UnZippedFile As String 
Dim UnZippedFolder As String 
Dim objShell 
Dim UZipFold 
Dim ZipFoldAndFile 
If Proceed = False Then Exit Sub 

WeekNum = Workbooks("personal.xlsb").Sheets("Dates").Range("WeekNum").Value 
ZipFolder = "\\server\path\" ' obfuscated because I must, sorry 
ZipFile = "Prefix" & "Week" & WeekNum & " (xlsx 07 format).zip" ' change the 11 to the last 2 digits of the year! 
UnZippedFolder = "\\server\path\" ' obfuscated, again, because I must 
UnZippedFile = "Logging_11" & "Week" & WeekNum & " (xlsx 07 format).xlsx" 

Set objShell = New Shell 
UZipFold = objShell.Namespace("" & UnZippedFolder) 
ZipFoldAndFile = objShell.Namespace("" & ZipFolder & ZipFile) 

UZipFold.copyhere (objShell.Namespace("" & ZipFolder & ZipFile).Items) '*' 
+0

嘗試改變「作爲字符串」的所有聲明爲「作爲變體」。我似乎記得有這個完全相同的問題,這是因爲傳遞給Shell的變量類型是字符串... –

回答

相關問題