如何使用vba在excel中创建隐藏工作表的实例?

时间:2012-06-26 04:24:25

标签: excel vba excel-vba

我正在创建一个支持宏的Excel作为生成'create table'sql脚本的工具。创建工作表需要输入列名,数据类型等,并在单击按钮时将生成脚本。此表称为“脚本生成器”。现在我需要一个“索引”表,它将包含表名和一个按钮。当我单击按钮时,我需要为每个表名打开“脚本生成器”表,这些表应该重命名为表名。

索引表代码如下:

Sub Add_sheets()
On Error Resume Next
Dim count As Integer
Dim r As Range
Dim sh As Worksheet

For Each r In Range("A3:A103")
If Not r = "" Then
  count = 0
For Each sh In ActiveWorkbook.Sheets
 If sh.Name = r.Value Then
   count = count + 1
 End If
Next sh
If count = 0 Then
With ActiveWorkbook.Sheets
.Add(after:=Worksheets(Worksheets.count), Type:="C:\Macro\Script_Template.xltm").Name =  r.Value
End With

ActiveSheet.Hyperlinks.Add Anchor:=r, Address:="", _
SubAddress:=Sheets(r.Value).Name & "!A1"
End If
End If
Next r
End Sub

现在,问题是我在外部添加了保存为'Script_Template.xltm'的脚本生成器。我只需要一个Excel来完成这一切。意味着,索引文件应在内部打开/添加格式“脚本生成器”的新表格,以便它形成一个完整的工具。也许隐藏此工作表并通过宏调用其实例并重命名这些工作表。如何通过VBA实现?有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:2)

您可以创建“Script_Template”表并隐藏它然后使用此代码创建副本

Sheets("Script_Template").Visible = True
Sheets("Script_Template").Copy After:=Sheets(ThisWorkbook.Sheets.count)
ActiveSheet.Name = r.Value
Sheets("Script_Template").Visible = False

答案 1 :(得分:2)

使用True和False设置工作表的Visible属性并不是一种好习惯。您应该使用已经提供的常量 - xlSheetHidden,xlSheetVeryHidden和xlSheetVisible。

xlSheetVisible将使您的工作表可见,xlSheetHidden将隐藏您的工作表。将其设置为xlSheetVeryHidden将确保您可以使工作表可见的唯一方法是通过VBA而不是通过Excel菜单栏格式 - >表 - >取消隐藏。

用法:

Sheets("Script_Template").Visible = xlSheetVisible