繁体   English   中英

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

[英]How to create instances of hidden worksheet in excel using vba?

我正在创建启用宏的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做到这一点? 有人可以帮我吗?

您可以创建一个“ 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

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

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

用法:

Sheets("Script_Template").Visible = xlSheetVisible

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM