我对VBA很新,我无法找到解决以下问题的正确方法。
我有一个包含5个工作表的Excel工作簿。最后3个工作表中包含数据,而第一个工作表是一个列表,其中包含最后3个工作表的名称。我希望当我在列表中选择其中一个工作表的名称时,它会被复制粘贴到第二个工作表,它是空的。
假设我在列表中选择工作表4,工作表2现在是工作表4的复制粘贴。
答案 0 :(得分:1)
将其粘贴到Sheet1的代码模块中。
改变这些:
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