我正在尝试创建一个可以反复使用数百个路线的道路设计电子表格。我得到了一切正在使用的主表单复制和两张用作查找表。我想在角落添加两个可用于的按钮:
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。 activesheet
和Worksheets
第一个按钮的代码:
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
答案 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