Excel VBA创建用于复制/重命名工作表和整个工作簿的按钮

时间:2013-12-19 23:34:42

标签: excel vba excel-vba

我正在尝试创建一个可以反复使用数百个路线的道路设计电子表格。我得到了一切正在使用的主表单复制和两张用作查找表。我想在角落添加两个可用于的按钮:

1)复制主表并将其重命名为alignmentname - ##。这将在当前工作簿中,并将用于道路路线中的每条曲线。如果有办法在复制的表格中删除这两个按钮,那就更好了。

2)一个按钮,只将主表单和两个补充表复制到新工作簿。

到目前为止,我有:

Sub Button10_Click()
    Worksheets("Master (DO NOT MODIFY)").Copy _
    Before:=ActiveWorkbook.Sheets("Master (DO NOT MODIFY)")
End Sub

它现在可以正常创建基本文件的副本,但我无法重命名它。重命名工作表的代码不起作用,我不太清楚为什么。

Sheets(Count).Name = Range("H7").Value & "-" & Count

其中count是一个公共变量,每增加一条新曲线就会增加1,而H7是对齐的名称。

我也玩过ActiveSheet。 activesheetWorksheets

第一个按钮的代码:

Public Count As Integer
Sub Button10_Click()
If Count = 0 Then
    Count = 1
End If

Dim ws As Worksheet

Worksheets("Master (DO NOT MODIFY)").Copy _
Before:=ActiveWorkbook.Sheets("Master (DO NOT MODIFY)")

Set ws = ActiveSheet

ws.Name = Range("C2").Value & Count
Count = Count + 1
End Sub

1 个答案:

答案 0 :(得分:3)

这是你在尝试什么?工作表移动count时,您无法使用before,如果您递增计数,则会引用错误的工作表。

Sub Button10_Click()
    Dim ws As Worksheet

    Worksheets("Master (DO NOT MODIFY)").Copy _
    Before:=ActiveWorkbook.Sheets("Master (DO NOT MODIFY)")

    Set ws = ActiveSheet

    ws.Name = Range("H7").Value & "-" & Count
End Sub

关于你的第二个问题,你可以这样试试。我假设主人不是最后一张或最后一张。主人之后还有两张纸。

Sub Button10_Click()
    Dim ws As Worksheet
    Dim wsMaster As Worksheet
    Dim MyArray(1 To 3) As String
    Dim n As Long

    Set wsMaster = ThisWorkbook.Worksheets("Master (DO NOT MODIFY)")

    wsMaster.Copy Before:=wsMaster

    Set ws = ActiveSheet

    ws.Name = Range("H7").Value & "-" & Count

    n = ThisWorkbook.Sheets.Count

    MyArray(1) = wsMaster.Name
    MyArray(2) = ThisWorkbook.Sheets(n - 1).Name
    MyArray(3) = ThisWorkbook.Sheets(n).Name

    '~~> This will create a new workbook with the 3 sheets
    ThisWorkbook.Sheets(MyArray).Copy
End Sub