使用VBA和列表复制粘贴

时间:2016-06-13 03:33:29

标签: excel vba list excel-vba

我对VBA很新,我无法找到解决以下问题的正确方法。

我有一个包含5个工作表的Excel工作簿。最后3个工作表中包含数据,而第一个工作表是一个列表,其中包含最后3个工作表的名称。我希望当我在列表中选择其中一个工作表的名称时,它会被复制粘贴到第二个工作表,它是空的。

假设我在列表中选择工作表4,工作表2现在是工作表4的复制粘贴。

1 个答案:

答案 0 :(得分:1)

将其粘贴到Sheet1的代码模块中。
改变这些:

  1. Sheet2Name
  2. Sheet1NamesListAddress
  3. 新名称
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Const Sheet2Name = "Sheet2"
        Const Sheet1NamesListAddress = "A1:A10"
        Const NewName = "New Name"
    
        If Not Intersect(ActiveCell, Range(Sheet1NamesListAddress)) Is Nothing Then
            Application.DisplayAlerts = False
            On Error Resume Next
            Sheets(Target.Text).Copy Before:=Sheets(2)
            ThisWorkbook.Worksheets(Target.Text).Delete
            Sheets(2).Name = NewName
            Application.DisplayAlerts = False
            On Error GoTo 0
        End If
    End Sub