是什么导致Microsoft excel错误“Removed Records:命名范围从/xl/workbook.xml部分(Workbook)”

我有一个大的Microsoft Excel文件,在我的办公室用户之间共享。 该文件有一个macros和一组数据validation。 该文件在每三个月的最后两周使用。 该文件在圣诞节前完美工作,但是,我们在三月遇到错误。打开文件时出现以下错误。
错误

点击是后,出现以下内容。
在这里输入图像说明

macros的代码是:

Sub Update() 'Declaring Variables. Dim Number_Rows As Long Dim Oppt As String Dim Array_Oppt() As String Dim Rows_Array As Integer 'Stops screen refreshing to save time. Application.ScreenUpdating = False 'removing any data validation and conditional formatting Sheet1.Activate Cells.Select Selection.Validation.Delete Selection.FormatConditions.Delete 'Assigning value to array. Rows_Array = 0 ReDim Preserve Array_Oppt(Rows_Array) 'Moving "Other" rows to the end of the data Sheet1.Select Selection.AutoFilter Field:=23, Criteria1:= _ "OTHER" Range("A2", Cells(Rows.Count, "A").End(xlUp)).SpecialCells(xlCellTypeVisible).Cells(1, 1).Select Selection.EntireRow.Select Range(Selection, Selection.End(xlDown)).SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheet8.Select Sheet8.Range("A1").Select ActiveSheet.Paste Sheet1.Select Range("A2", Cells(Rows.Count, "A").End(xlUp)).SpecialCells(xlCellTypeVisible).Cells(1, 1).Select Selection.EntireRow.Select Range(Selection, Selection.End(xlDown)).SpecialCells(xlCellTypeVisible).Select Selection.Delete Shift:=xlUp Selection.AutoFilter Number_Rows = Application.WorksheetFunction.CountA(Range("A:A")) Sheet8.Select Selection.Cut Sheet1.Activate Range("A" & Number_Rows + 1).Select ActiveSheet.Paste 'Counting number of rows. Number_Rows = Application.WorksheetFunction.CountA(Range("A:A")) 'Loop to check if oppt if unit or non unit deal. Checks if oppt is in array and adds oppt if not. 'Calculates total revenue per opp. For i = 2 To Number_Rows Oppt = Range("I" & i) 'In array already. If UBound(Filter(Array_Oppt, Oppt)) >= 0 Then 'Non Unit deal in the array already. Deletes line and shifts row up as well as i up. If Range("W" & i) = "OTHER" Then Rows(i).Select Selection.Delete Shift:=xlUp Number_Rows = Number_Rows - 1 i = i - 1 'Unit deal in the array already. Else Range("J" & i) = "" End If 'Not in array so needs to be added. Else Range("J" & i) = Application.WorksheetFunction.SumIf(Range("I:I"), Oppt, Range("J:J")) If Range("W" & i) = "OTHER" Then Range(Cells(i, 19), Cells(i, 26)) = "" Else End If 'Redefines the size of the array factoring in new added row. ReDim Preserve Array_Oppt(Rows_Array) Array_Oppt(Rows_Array) = Oppt Rows_Array = Rows_Array + 1 End If Next 'Adds blank column for business manager. Columns("H:H").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("H1") = "Business Manager" 'Updates the titles of the last columns in file Range("AB1") = Date - 2 Range("AC1") = Date - 1 Range("AD1") = "Today" Range("AE1") = "Focus List" Range("AF1") = "% Chance" Range("AG1") = "Allocation Status" Range("AH1") = "New PO Date" Range("AI1") = Date - 3 Range("AJ1") = Date - 4 Range("AK1") = Date - 5 Range("AL1") = Date - 6 Range("AM1") = Date - 7 Range("AN1") = Date - 8 Range("AO1") = Date - 9 Range("AP1") = Date - 10 Range("AQ1") = "Partner Grouping" Range("AR1") = "VNX Models" Range("AS1") = "Commit + X" Range("AT1") = "Country" Range("AU1") = "Theater" 'Moves to Sheet2 and copies Upside X column B to the end (column AV) for the purpose of VLookup. Then returns to Sheet1. Sheet2.Activate Sheet2.Columns("B:B").Select Application.CutCopyMode = False Selection.Copy Sheet2.Columns("AV:AV").Select ActiveSheet.Paste Sheet1.Activate 'Loop to add Linked status; and to complete VLookups from yesterday. For i = 2 To Number_Rows 'If to check linked status If Range("L" & i) = "" Then Range("M" & i) = "Not Linked" Else Range("M" & i) = "Linked" End If 'Vlookups On Error Resume Next Err.Clear 'Vlookup to add business manager Sheet1.Range("H" & i) = Application.VLookup(Sheet1.Range("G" & i), Sheet3.Range("A:B"), 2, False) 'Vlookup to add comments from 2 days ago to column AB Sheet1.Range("AB" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 20, False) 'Vlookup to add comments from yesterday to column AC Sheet1.Range("AC" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 21, False) 'Vlookup to add data from Focus List column Sheet1.Range("AE" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 22, False) 'Vlookup to add data from % Chance column Sheet1.Range("AF" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 23, False) 'Vlookup to add data from Allocation Status column Sheet1.Range("AG" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 24, False) 'Vlookup to add data from New PO Date column Sheet1.Range("AH" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 25, False) 'Vlookup to add data from 3 days ago to column AI Sheet1.Range("AI" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 19, False) 'Vlookup to add data from 4 days ago to column AJ Sheet1.Range("AJ" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 26, False) 'Vlookup to add data from 5 days ago to column AK Sheet1.Range("AK" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 27, False) 'Vlookup to add data from 6 days ago to column AL Sheet1.Range("AL" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 28, False) 'Vlookup to add data from 7 days ago to column AM Sheet1.Range("AM" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 29, False) 'Vlookup to add data from 8 days ago to column AN Sheet1.Range("AN" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 30, False) 'Vlookup to add data from 9 days ago to column AO Sheet1.Range("AO" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 31, False) 'Vlookup to add data from 10 days ago to column AP Sheet1.Range("AP" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AR"), 32, False) 'Vlookup to add data to VNX Models column AR from VNX Models sheet 5 using Item Number column Sheet1.Range("AR" & i) = Application.VLookup(Sheet1.Range("W" & i), Sheet5.Range("A:B"), 2, False) 'Vlookup to add data to Upside X column B Sheet1.Range("B" & i) = Application.VLookup(Sheet1.Range("J" & i), Sheet2.Range("J:AV"), 39, False) 'Vlookup to add Country to Country column AT based on Mapping Table sheet 4 Sheet1.Range("AT" & i) = Application.VLookup(Sheet1.Range("G" & i), Sheet4.Range("A:B"), 2, False) 'Vlookup to add Theater to Theater column AU based on Mapping Table sheet 4 Sheet1.Range("AU" & i) = Application.VLookup(Sheet1.Range("G" & i), Sheet4.Range("A:C"), 3, False) If Err.Number = 0 Then Else End If Next 'Adding Formula for Commit + X Column AS for Conf Call Analysis file Range("AS2").Formula = "=IF(C2=""Commit"",""Commit+X"",IF(B2=""X"",""Commit+X"",""""))" Range("AS2").Select Selection.AutoFill Destination:=Range("AS2:AS" & Number_Rows) '***********FORMATTING BELOW************** 'Format Revenue column K - no decimal, 1,000 seperator. Columns("K:K").Select Selection.NumberFormat = "#,##0" 'Format Forecast Close Date column P Columns("P:P").Select Selection.NumberFormat = "d/m/yyyy" 'Format Focus List column AE Columns("AE:AE").Select Selection.NumberFormat = "d/m/yyyy" 'Format % Chance column AF Columns("AF:AF").Select Selection.NumberFormat = "0%" 'Format cells with Dates as titles to dd-mm rather than long date Range("AB1:AC1").Select Selection.NumberFormat = "d-mmm" Range("AI1:AP1").Select Selection.NumberFormat = "d-mmm" 'Add Data Validation to Allocation Status column Columns("AG:AG").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=_Allocation" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With 'Sorting by Description AZ, Business Manager AZ and Revenue $ Largest to Smallest Sheet1.Sort.SortFields.Clear Sheet1.Sort.SortFields.Add Key:=Range("C2:C" & Number_Rows _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal Sheet1.Sort.SortFields.Add Key:=Range("H2:H" & Number_Rows _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal Sheet1.Sort.SortFields.Add Key:=Range("K2:K" & Number_Rows _ ), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With Sheet1.Sort .SetRange Range("A1:AU" & Number_Rows) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'Hide Columns Quarter AA,Primary Partner OO, Reporting Product Type TT, Product Line VV, Opportunity Source Code QQ Columns("A:A").Select Selection.EntireColumn.Hidden = True Columns("O:O").Select Selection.EntireColumn.Hidden = True Columns("T:T").Select Selection.EntireColumn.Hidden = True Columns("Q:Q").Select Selection.EntireColumn.Hidden = True Columns("V:V").Select Selection.EntireColumn.Hidden = True 'Colours Today column AD yellow Columns("AD:AD").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 65535 .TintAndShade = 0 .PatternTintAndShade = 0 End With 'Colours Allocation Status column AG blue Columns("AG:AG").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 15773696 .TintAndShade = 0 .PatternTintAndShade = 0 End With 'Bold Headings in row 1 Rows("1:1").Select Selection.Font.Bold = True 'Adding Conditional Formatting Order Number column J, to highlight all duplicate values so that all oppts that have more than one row are red. Columns("J:J").Select Selection.FormatConditions.AddUniqueValues Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority Selection.FormatConditions(1).DupeUnique = xlDuplicate With Selection.FormatConditions(1).Font .Color = -16383844 .TintAndShade = 0 End With With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 13551615 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False 'Adding last updated date Sheet3.Range("J1") = Date 'Allows screen to refresh at the end Application.ScreenUpdating = True 'Msgbox to advise when macro is complete. MsgBox ("File is now updated.") End Sub 

我已经find了一些解决办法,但是,这会降低我们的生产力,错误会在当天​​晚些时候回来。 有人可以告诉我这个问题的可能原因是什么?

为了避免冗长的评论部分,我们昨晚继续聊天。 它比预期的更快。 他提供了下面的definedName块。

尽pipe我看到有很多事情可能没有起作用,但在共享视图中,它看起来最像是一种断断续续的关系。 这是一个共享的工作簿,在networking驱动器上,从外观上看,有6个不同的机器都存储了一些个人视图数据。 所有的语法看起来都<customWorkbookViews> ,所以没有看到所有sheet * .xml文件,它可能在基于GUID的所有相关的<customSheetViews><customWorkbookViews> / <customSheetViews>节点之一中。 因为这些GUID是由运行时的excel生成的,所以失去控制是一件容易的事情。

closures“审阅”选项卡中的“filter设置”>“共享工作簿”>“高级”选项卡,在“包含在个人视图中”标题下,将删除.wvu中的所有 .wvu命名节点,以及从工作表中的“查看”节点* .xml,并防止他们重新出现。 这可以解决问题,或者将候选人减less到一个用户定义的范围,以及一个系统定义的范围。 有可能是最近的一次抢救呃留下一些文件部分没有更新,因此是一个破碎的关系。

缺点:只能保存一个视图状态,所以在打开文件时你会看到最后一个用户格式/filter的变化。

希望它真的修复它! 如果不是的话,我们再来一轮。

customSheetView类MSDN

customWorkbookView类MSDN

UserBView MSDN(奇怪格式的Z_GUID部分)

customSheetViewClass文档指出,GUID“ 将对应于一个customWorkbookView ”,其中customWorkbookView只需要一个包含全局唯一GUID(我知道的redunant,但它在文档中)的名称。 如果不符合“要求”要求,则会导致“删除logging:从/xl/workbook.xml/部件(工作簿)中命名范围”修复信息。

 'EOQ TRACKER - MARCH 20TH V2.xlsm\workbook.xls - definedNames <definedNames> <definedName name="_Allocation">'6'!$A$2:$A$25</definedName> <definedName name="_xlnm._FilterDatabase" localSheetId="0" hidden="1">'1'!$A:$AV</definedName> <definedName name="Z_02EBD829_B457_4EED_8A23_48BD791D2A90_.wvu.FilterData" localSheetId="0" hidden="1">'1'!$A$1:$AU$5396</definedName> <definedName name="Z_5038F31E_F522_4C27_8172_A37A2E0A913D_.wvu.FilterData" localSheetId="0" hidden="1">'1'!$A:$AV</definedName> <definedName name="Z_6179D930_DC8C_44A7_9B7D_D78327247088_.wvu.Cols" localSheetId="0" hidden="1">'1'!$A:$A,'1'!$O:$O,'1'!$Q:$Q,'1'!$T:$T,'1'!$V:$V</definedName> <definedName name="Z_6179D930_DC8C_44A7_9B7D_D78327247088_.wvu.FilterData" localSheetId="0" hidden="1">'1'!$A$1:$AU$5396</definedName> <definedName name="Z_7736F281_6E25_4779_AF1F_AC145F2EB4E9_.wvu.FilterData" localSheetId="0" hidden="1">'1'!$A$1:$AU$5396</definedName> <definedName name="Z_A2BCDFEA_821A_444D_B1F8_3659E07AD9AC_.wvu.Cols" localSheetId="0" hidden="1">'1'!$A:$A,'1'!$O:$O,'1'!$Q:$Q,'1'!$T:$T,'1'!$V:$V</definedName> <definedName name="Z_A2BCDFEA_821A_444D_B1F8_3659E07AD9AC_.wvu.FilterData" localSheetId="0" hidden="1">'1'!$A:$AV</definedName> <definedName name="Z_A2BCDFEA_821A_444D_B1F8_3659E07AD9AC_.wvu.Rows" localSheetId="0" hidden="1">'1'!:$1048576</definedName> <definedName name="Z_AC1AB890_7D16_45DD_B4FB_13CB8F92D4C2_.wvu.Cols" localSheetId="0" hidden="1">'1'!$A:$A,'1'!$O:$O,'1'!$Q:$Q,'1'!$T:$T,'1'!$V:$V</definedName> <definedName name="Z_AC1AB890_7D16_45DD_B4FB_13CB8F92D4C2_.wvu.FilterData" localSheetId="0" hidden="1">'1'!$A:$AV</definedName> </definedNames>