文档检查器在工作簿中发现了隐藏的名称。 这些名称可以存储有关规划求解方案的隐藏信息。 例如, 使用规划求解加载项 运行方案时,它可能会将有关计算参数和其他敏感数据的信息作为隐藏名称存储在工作簿中。
重要: Microsoft 的编程示例仅用于说明,不做任何明示或暗示的保证。 这包括但不限于特定用途的适销性或适用性的隐含保证。 本文假定你熟悉所演示的编程语言以及用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能,但他们不会修改这些示例以提供新增功能或构建步骤以满足你的特定需要。
问题
文档检查器无法删除这些隐藏名称。
推荐解决方案
运行以下宏以删除隐藏的名称。 该宏显示一个消息框,其中列出了三项: (1) 定义的名称是可见还是隐藏, (2) 定义的名称, (3) 该名称 (工作簿单元格引用) 。 可以选择 “是” 或“ 否 ”以删除或保留每个定义的名称。
注意: 如果使用此宏删除隐藏名称,外接程序 ((如规划求解) 或宏)可能无法按预期工作,并且可能会丢失与其关联的隐藏数据。 此宏还影响任何隐藏的已定义名称,而不仅仅是规划求解添加的名称。
警告: 如果工作表名称包含空格,则尝试删除定义的名称时,可能会收到错误。
删除隐藏的名称
' Module to remove all hidden names on active workbook
Sub Remove_Hidden_Names()
' Dimension variables.
Dim xName As Variant
Dim Result As Variant
Dim Vis As Variant
' Loop once for each name in the workbook.
For Each xName In ActiveWorkbook.Names
'If a name is not visible (it is hidden)...
If xName.Visible = True Then
Vis = "Visible"
Else
Vis = "Hidden"
End If
' ...ask whether or not to delete the name.
Result = MsgBox(prompt:="Delete " & Vis & " Name " & _
Chr(10) & xName.Name & "?" & Chr(10) & _
"Which refers to: " & Chr(10) & xName.RefersTo, _
Buttons:=vbYesNo)
' If the result is true, then delete the name.
If Result = vbYes Then xName.Delete
' Loop to the next name.
Next xName
End Sub