在VBA

时间:2017-10-26 14:23:48

标签: excel vba excel-vba indexing

我想从我的第一张纸上复制一些内容,将它们粘贴到新纸张中,然后删除第一张纸并将新(仅)纸张重命名为Sheet1。但我永远不知道创建它时第二张纸会被命名。大多数时候,它将是Sheet2,但我不能指望它。下面是从创建宏的过程中获取的代码,但它使用的是在此实例中创建的工作表名称。我想使用工作表的索引,但不知道语法:

    Columns("A:D").Select
    Selection.Copy
    Sheets("Sheet2").Select
    ActiveSheet.Paste
    Sheets("Sheet1").Select
    Application.CutCopyMode = False
    ActiveWindow.SelectedSheets.Delete
    Sheets("Sheet2").Select
    Sheets("Sheet2").Name = "Sheet1"

所以在哪里说" Sheet2" ...我如何使用第二张纸,而不一定是名为Sheet2的纸张?

感谢。

2 个答案:

答案 0 :(得分:4)

Worksheets(2)是引用第二张表的方法。

Worksheets(Worksheets.Count)到最后一个。

试试这样:

Debug.Print Worksheets(Worksheets.Count).name

答案 1 :(得分:2)

您可以创建一个将成为新工作表的变量:

Sub sheetdelet()
Dim ws As Worksheet
With ThisWorkbook
    Set ws = .Worksheets.Add
    .Worksheets("Sheet1").Range("A:D").Copy ws.Range("A1")
    Application.DisplayAlerts = False
    .Worksheets("Sheet1").Delete
    Application.DisplayAlerts = True
    ws.Name = "Sheet1"
End With

End Sub