2017-09-01 33 views
0

我有3個Excel文件,其中一個是所有代碼的報告,另一個是.xls SAP BI導入文件和狀態文件。這兩個都保存在網絡服務器上。導入文件作爲模板是常量,而狀態文件是一頁一頁寫入的。更新文件:對象'_workbook'的方法'工作表'失敗

我的宏從報告和導入文件中獲取數據,大多數列都將它們置於狀態文件中,並在數字之間進行比較。

它適用於我的計算機和網絡,但是當我更改爲客戶端的網絡服務器時,我收到錯誤消息。

Error

狀態的工作簿可以創建並可以打開,但如果我嘗試訪問我需要更新工作表,它崩潰。

我的猜測是錯誤來自其中包含括號中的客戶端的地址,例如:

我:_Other_Site \中心_(F-SERVER)\ A-CENTRAL \ 00902 \ DIGITAL \ 01。工作卡BT \ 02。工作文件\

雖然我公司的網絡地址,更像是

Z:\ CLIENTS \工作文件\ 「usernamefolder」 \

我試圖把文件名和變量路徑,甚至在VBA中對錶格名稱進行硬編碼。這裏有一個代碼片段:

Dim sPath, sFile_s, strSheetName As String 
Dim wb_s As Workbook 

sPath = "I:\_Other_Site\CENTER_(F-SERVER)\A-CENTRAL\00902\DIGITAL\01. Working Card BT\02. Working files\" 
sFile_s = sPath & "Import Status.xlsx" 

Set wb_s = Workbooks.Open(sFile_s) 

wb_s.Activate 
strSheetName = ActiveSheet.Name 

'some code here to open the other files' 

wb_s.Worksheets(strSheetName).Activate 'here it errors out 
+0

您可以不用'strSheetName = ActiveSheet.Name'來執行'strSheet = ActiveSheet'嗎?您將strSheet變暗爲工作表,然後執行'strSheet.Activate' – Moacir

+0

我試過了,並且出現相同的錯誤。 – CCM

+0

'sPath'和'sFile_s'被聲明爲'variant',而不是'string'。這是一個古老的陷阱。在每個變量之後添加'as string'。 – user1016274

回答

0

strSheetName = ActiveSheet.Name越來越當前/開發工作簿(不wb_s)活動工作表的名稱。將此更改爲strSheetName = wb_s.ActiveSheet.Name

+0

'wb_s.Activate strSheetName = ActiveSheet.Name'被設計爲這樣做,取出新創建的工作表的名稱並將其存儲在一個變量中,稍後我將執行工作狀態文件的副本時使用該變量。我試過你的改變,但不幸的是我收到了同樣的錯誤。 – CCM

+0

'wb_s.Sheets(strSheetName).Activate' –

+0

如何?對不起,回覆遲了!我也嘗試過,它可以在我的電腦上運行,但在客戶網絡上卻不行。不知何故,它不會得到工作表的名稱,如果有多個..也許有一個特定的FR我在服務器地址丟失? Idk ..我會嘗試在本地移動所有文件夾,然後將結果上傳到服務器上。 – CCM

相關問題