|
老刀的“取消宏则关闭工作簿”确实很精彩,根据我的理解、使用重新整理了一下,供新手借鉴。
宏创建步骤:
1、首先在你的工作薄中插入4.0宏表(ctrl+f11)
2、然后把 MACRO工作表中的内容原样复制刚插入的宏表中。在thisworkbook的Workbook_NewSheet事件中插入以下代码:
功能:自动在新增的工作表中插入"Macro! auto_activate名称
Private Sub Workbook_NewSheet(ByVal Sh As Object)
ActiveWorkbook.Names.Add Name:=Sh.Name & "!auto_activate", RefersToR1C1:="=Macro!R2C1"
End Sub
3、在VBE中插入一个新模块,复制以下宏到新模块中,运行一下后。
Public Sub AddName() '扫描已有的工作表,检测是否已插入"Macro! auto_activate名称,如果没有则自动增加
For Each Sh In ActiveWorkbook.Sheets
If Not ChkName(Sh.Name) Then
ActiveWorkbook.Names.Add Name:=Sh.Name & "!auto_activate", RefersToR1C1:="=Macro!R2C1"
End If
Next
End Sub
Function ChkName(ByVal Sh As String) As Boolean
Dim Ck As Boolean
For Each nm In ActiveWorkbook.Names
If InStr("Auto_Activate", UCase(nm.Name)) > 0 Then
Ck = True
Exit For
End If
Next
ChkName = Ck
End Function
运行 AddName宏,保存后退出,重新打开试一下。
4、注意:在提交用户时别忘了,隐藏宏表(MACRO)。运行以下代码可以深度隐藏宏表。
Sub Hide()
ThisWorkbook.Sheets("Macro").Visible = 2 '-1为解除隐
End Sub
隐藏后将上述代码删除。 |
|