同样 , 任何外部子过程遍历加载项的Names集合 , 可以读取、修改和删除中所有隐藏的或者未隐藏的工作簿名称 。
隐藏的名称空间避免了这些危险 , 它也比基于环境字符串的实例、临时文件或注册输入等方法更简单 , 而且隐藏的名称空间是永久的 , 用户能关闭和重新打开该工作簿而无须重新设置这个计数器 。
在下面的代码中 , 函数SetHName、GetHName和DelHName允许创建、获取和删除隐藏的名称 , 而无须直接使用冗长的Application.ExecuteExcel4Macro方法 。
Sub Main()
Application.EnableCancelKey = xlDisabled
Dim Count
Count = GetHName(“TswbkCount”)
If IsError(Count) Then
SetHName “TswbkCount”, 3
ElseIf Count = 1 Then
MsgBox “宏被禁止. 你必须重新启动Excel.”, vbInformation
Else
SetHName “TswbkCount”, Count – 1
End If
End Sub
Sub SetHName(Name As String, Value)
Application.ExecuteExcel4Macro _
“SET.NAME(“”” & Name &”””,” & Value & “)”
End Sub
Function GetHName(Name As String)
GetHName = Application.ExecuteExcel4Macro(Name)
End Function
Sub DelHName(Name As String)
Application.ExecuteExcel4Macro”SET.NAME(“”” & Name & “””)”
【excel表格名称的秘密】End Sub
推荐阅读
- 小心!Excel的保护工作表/工作簿密码很容易破解
- 怎么使用excel公式实现自动排序?
- 怎么获取多个excel表格中公司最近的一条记录?
- excel表单怎么实现逐条批量打印?
- 怎么将excel单元格中的数字和文本分开?
- 怎么强制excel用户启用宏?
- excel怎么合并相同用户号的数据并导入到Word文档?
- 怎么从已关闭的excel工作簿中取值?
- excel怎么判断是否存在指定文件名的文件?
- 怎么跟踪并记录Excel的修改信息?