我正在研究一段代碼,該工作表創建某個模板工作表的副本,或者根據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