2

我正在创建一个启用宏的 Excel 作为生成“创建表”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做到这一点?有人可以帮我解决这个问题吗?

4

2 回答 2

3

使用 True 和 False 设置工作表的 Visible 属性不是好的做法。您应该使用已经提供的常量 - xlSheetHidden、xlSheetVeryHidden 和 xlSheetVisible。

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

用法:

Sheets("Script_Template").Visible = xlSheetVisible
于 2012-06-26T08:22:13.303 回答
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
于 2012-06-26T06:57:22.063 回答