2017-09-01 98 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

相关问题