我正在研究一段代码,该工作表创建某个模板工作表的副本,或者根据Excel工作表中列的内容从单元格B2开始删除工作表。VBA:从列表中添加和删除工作表
操作我想宏做:
1)如果工作表名称的数组值相匹配无能为力
2)如果没有片数组值,创建模板表的副本并用数组值重新命名。此外,将复制工作表的单元格A1命名为数组值。
3)如果数组中不存在表单,请删除表单。除名为输入或模板的图纸外。
到现在我有两个单独的代码,一个复制表和其他删除表:
准则,以添加图纸:
Sub AddSheet()
Application.ScreenUpdating = False
Dim bottomA As Integer
bottomA = Range("A" & Rows.Count).End(xlUp).Row
Dim c As Range
Dim ws As Worksheet
For Each c In Range("A1:A" & bottomA)
Set ws = Nothing
On Error Resume Next
Set ws = Worksheets(c.Value)
On Error GoTo 0
If ws Is Nothing Then
Sheets("Template").Select
Sheets("Template").Copy After:=Sheets(Sheets.Count)
ActiveSheet.name = c.Value
End If
Next c
Application.ScreenUpdating = True
End Sub
代码以删除张:
Sub DeleteSheet()
Dim i As Long, x, wsAct As Worksheet
Set wsAct = ActiveSheet
For i = Sheets.Count To 1 Step -1
If Not Sheets(i) Is wsAct Then
x = Application.Match(Sheets(i).name, wsAct.Range("A1:A20"), 0)
If IsError(x) Then
Application.DisplayAlerts = False
Sheets(i).Delete
Application.DisplayAlerts = True
End If
End If
Next i
End Sub
我的问题是:
1)如何添加用AddSheet代码中的数组值重命名单元格A1的块?
2)如何在DeleteSheet代码中添加except规则?
3)如何将这些代码合并成一个代码,最后创建一个按钮在输入表中激活这个宏?
非常感谢提前!
我有一些很好的烹饪,但我必须先问这个。你不断提及一个数组,但它在你的代码中不存在。您想要免除删除的工作表是输入,模板和此数组中的任何内容。数组是你的其他代码还是来自某个范围的某个地方?如果以后请提供范围。 – 2014-10-19 05:47:39
@DavidRachwalik,感谢您的帮助!数组值不是另一段代码,它是从范围(从单元格B2开始,直到列中的最后一个值)。数组值是指员工的姓名。假设员工编号在列A中,相应员工的名称在列B中。每个员工都应该有自己的选项卡,用员工姓名重新命名,因为我不知道员工编号。如果新员工到达,他/她将获得自己的工作表。如果一个人离开,他/她的工作表应该被删除。希望这有帮助。 – Klaberbem 2014-10-19 07:42:34