几个月前,我使用VBA在Excel中编写了一个程序,运行正常。今天,我重新打开了程序,代码出错了我,给了我一个"应用程序定义的或对象定义的错误"包在我身上。此工作簿存储在我具有读/写权限的网络驱动器上。我还尝试使用保存在驱动器上其他位置的工作簿的新副本,以及保存在桌面上的副本,每个副本都会导致相同的错误。这是代码停止的地方
ThisWorkbook.Sheets("UI").Activate
ThisWorkbook.Sheets("UI").ChartObjects("MainChart").Chart.ProtectData = True
ThisWorkbook.Sheets("UI").ChartObjects("MainChart").Chart.ProtectFormatting = True
ThisWorkbook.Sheets("UI").ChartObjects("VPricePerChart").Chart.ProtectData = True
ThisWorkbook.Sheets("UI").ChartObjects("VPricePerChart").Chart.ProtectFormatting = True
ThisWorkbook.Sheets("UI").ChartObjects("NewChart").Chart.ProtectData = True
ThisWorkbook.Sheets("UI").ChartObjects("NewChart").Chart.ProtectFormatting = True
我知道我不需要激活工作表来更改特定命名对象的属性,但是在我退出工作以查看错误发生的位置后,我将该行放入今天。当我使用Sheets("UI").Activate
时,错误发生在第一行。我尝试运行包含Sheets("UI")
的其他过程,并且它们都返回了相同的错误。我检查以确保工作表的名称没有更改,它仍然是UI
。工作表和工作簿都不受保护,工作表未隐藏。我可以ThisWorkbook.Sheets("Data").Activate
罚款,其中Data
是另一张。我还尝试使用ThisWorkbook.Sheets(1).Activate
,因为UI
是我工作簿中的第一张表,但不起作用。
整个事情中最奇怪的部分是完全相同的文件打开完全正常,运行所有编写的代码而不会在我的同事的机器上造成任何错误。
为什么我不能做涉及该表的任何事情的任何想法?
答案 0 :(得分:0)
你的" UI"工作表名称有前导或尾随空格?