我正在使用一个漫长的过程来创建和填充一系列“路由”工作簿,并在执行此操作时填充主“摘要”工作簿。
简而言之,只要我尝试使用摘要中的相关工作表,就会在从路由工作簿导入数据时立即发生错误。
虽然引用整个代码是不切实际的,但我在这里复制了我认为“相关”的地方:
' Get Route Number
RNum = wshCtrl.Cells(2, 2 + i).Value ' Number for routes being processed (blank if not processed)
RawRNum = wshCtrl.Cells(4, 2 + i).Value ' Raw Number
' Get Route Direction
RDir = wshCtrl.Cells(9, 2 + i).Value
' Get Name of Worksheet
NamewshRoute = "Route " & RawRNum & " - " & RDir
' Check if Route Worksheet exists
Set wshRoute = Nothing
On Error Resume Next
Set wshRoute = Sheets(NamewshRoute)
On Error GoTo 0
' If Route Worksheet doesn't exist and Route being processed
If wshRoute Is Nothing And RNum <> "" Then
' Create Route Worksheet
' Copy Template
wshTemplate.Copy After:=wshTemplate
' Rename Copied Template
Worksheets("Template (2)").Name = NamewshRoute
' Set as Route Worksheet
Set wshRoute = Sheets(NamewshRoute)
' Enter Route Number and Direction
wshRoute.Cells(2, 3).Value = RNum
wshRoute.Cells(2, 4).Value = RDir
' If Route Worksheet doesn't exist and Route isn't being processes
ElseIf wshRoute Is Nothing Then
' Do Nothing
' Else Route Worksheet already exists and Route being processed
Else
' Update Progress Bar
Percent = j / (NumRoutes + 0.5) - (1 / (NumRoutes + 1) * 8 / 8)
RefreshStatusBar Percent, "Processing " & NamewshRoute, "Initialising Route"
' Update Date
wshRoute.Range("AW9").Value = Month & Year
错误发生在以下两行之一:
wshRoute.Cells(2, 3).Value = RNum
或
wshRoute.Range("AW9").Value = Month & Year
取决于工作表是否存在。
请注意:
此代码工作正常(我已经使用了大约一年),直到我在开始时添加了另一个宏。新宏打开一个不同的工作簿并创建“数据”文件。它不以任何方式与“摘要”工作簿交互。如果我在没有额外新宏的情况下运行代码,它会再次正常运行。
任何建议请解雇他们。这对我来说是首要任务,因此我会及时进行测试。
谢谢Cameron
答案 0 :(得分:2)
尝试添加这些调试语句,看看你得到了什么:
Set wshRoute = Sheets(NamewshRoute)
Debug.Print wshRoute Is Nothing
Debug.Print wshRoute.Name & " is in workbook " & wshRoute.Parent.Name
Debug.Print wshRoute.Cells(2, 3) Is Nothing
Debug.Print "RNum is type " & TypeName(RNum)
wshRoute.Cells(2, 3).Value = RNum
答案 1 :(得分:-1)
经过一番来回...感谢所有贡献者。
问题是我试图修改受保护的工作表
我发现这是通过将Application.DisplayAlerts = False
放在导致错误的行之前。发生这种情况时,未设置为对象'错误实例的原始'对象引用替换为'您尝试更改的单元格或图表受到保护,因此读取 - 只是。'错误。
我通过确保宏运行时所有工作表都不受保护来修复它。
另一方面 - 我没有用工作簿来证明我的床单。
再次感谢您的所有建议。