Excel中的宏(VBA)在同事PC上失败但在同事登录时在我的工作

时间:2017-02-24 09:25:40

标签: excel vba excel-vba

我正在开发VBA工具来自动执行一系列冗长的管理任务,在以下情况下代码运行良好。

  • 当我登录电脑时
  • 当我的同事登录我的电脑时
  • 当我登录我的同事PC时

然而,当我的同事在她的电脑上运行时,它无法正确完成。

失败的具体区域是:

'creates 2 dims for location of the two files that need opening based on the critera set on the home page

Dim newdata As String
newdata = Range("f11").Value
Dim olddata As String
olddata = Range("f12").Value
Dim fileextension As String
fileextension = Range("f14").Value

Dim fulllocationolddata As String
fulllocationolddata = Range("f13") & olddata & fileextension

Dim fulllocationnewdata As String
fulllocationnewdata = Range("f13") & newdata & fileextension


'open file containing OLDDATA c&p previous days data to the conversion tool
'then shuts the old data workbook

  Workbooks.Open Filename:=fulllocationolddata
  Workbooks(olddata).Activate
  Worksheets("sheet1").Select
  Range("A1").CurrentRegion.Copy

  Workbooks("Stockfile Conversion Tool.xlsm").Activate
  Sheets("OLD STOCK").Activate
  Range("A3").Select
  Selection.PasteSpecial

    Workbooks(olddata).Activate
    Worksheets("sheet1").Select

  Workbooks(olddata).Close SaveChanges:=False

最后一行(Workbooks(olddata).Close SaveChanges:= False)没有关闭工作簿,然后在宏中我打开另一个同名的工作簿但是因为它已经打开它只是激活了窗口和其余代码分崩离析。

如果有任何想法我会出错,我们将不胜感激。

提前感谢您的协助

Plan303

1 个答案:

答案 0 :(得分:0)

在这里回答我的意见:

Workbooks("Name of the Workbook")是否有效取决于系统控制中的设置 - 文件夹选项 - 查看 - [x]隐藏已知文件类型的扩展程序

如果已设置,则Excel的文件扩展名.xlsx.xlsm,...在资源管理器或其他文件列表中可见。只显示Excel文件的文件名。如果是,那么Workbooks("Name of the Workbook")将起作用。

如果未设置Hide extensions for known file types,则在资源管理器或其他文件中可以看到Excel的文件扩展名.xlsx.xlsm,... 列表。如果是,那么Workbooks("Name of the Workbook")工作。然后,只有Workbooks("Name of the Workbook.xlsx"),名称的扩展名才有效。

但如果设置Workbooks("Name of the Workbook.xlsx") Hide extensions for known file types也会有效。因此,首选使用全名包含扩展名。

所以对于具体问题:

如果olddata仅包含工作簿的名称而不包含文件扩展名,则Workbooks(olddata)仅在Hide extensions for known file types中设置Folder Options时才有效。如果未设置该选项并且文件扩展名在资源管理器中可见,则会失败。但Workbooks("Stockfile Conversion Tool.xlsm")始终与Hide extensions for known file types是否设置无关。因此,如果Workbooks(olddata & fileextension)仅包含工作簿的名称,并且olddata包含fileextension,则.xlsx也应始终有效。