将最近创建的工作表移动到新工作簿

时间:2015-03-19 14:49:28

标签: excel vba

我在userform中的复选框中有很多代码标记。每个复选框的每个代码。 如果选中复选框并单击按钮,则会复制这些工作表(新工作表为Copy / PasteValue,新名称为“Name(Excel)”)。 接下来,我不知道如何将这些工作表移动到另一个工作簿,因为我不知道要创建多少工作表或工作表名称。我的代码标记为复选框,例如,(顺便说一句,如果我要复制的工作表是不可见的,我取消隐藏以及复制后如何再次隐藏)。

Sub CreateExcel()
ActiveWorkbook.Sheets("Data").Visible = True
    Dim test As Worksheet
    Sheets("Data").Copy After:=Sheets(Sheets.Count) 
    Set test = ActiveSheet
    test.Name = "Data (Excel)"

    Cells.Copy
    Cells.PasteSpecial xlPasteValues
End sub

我找到了答案,但它有一个问题,它也会移动活动表。如何摆脱活动表,我认为如果使用Do循环更好,但我不知道代码。请修复我的代码。

Sub MoveSheets()
Dim bReplace As Boolean, sh As Worksheet
Dim bk As Workbook
bReplace = True
For Each sh In Worksheets
If sh.Name Like "*(Excel)" Then
sh.Select Replace:=bDontReplace
bReplace = False
End If
Next
ActiveWindow.SelectedSheets.Move
'ActiveWorkbook.SaveAs Filename:=bk.Path & "\" & "(Excel).xlsm" 'this code was wrong too, I dont know why
End Sub

0 个答案:

没有答案