使用VBA将工作表复制到另一个工作簿

我试图复制VBA所在的工作簿(ThisWorkbook)中的工作表,并将其过滤到用户打开的另一个工作簿(ActiveWorkbook)中。 我已经写了一个函数,但我无法得到它的工作。 我之前做过类似的事情,而且我search了互联网,但是我找不到解决办法,或者为什么我没有做到这一点。 我究竟做错了什么?

Function workBooks() As String aWbkName = ActiveWorkbook.Name tWbkName = ThisWorkbook.Name Dim wbk1 As Workbook Dim wbk2 As Workbook Set wbk1 = tWbkName Set wbk2 = aWbkName wbk1.Sheet2.Copy After:=wbk2.Sheets(7) End Function 

试试这个,看看它是否工作。 它将在ThisWorkbook复制Sheet2并将其粘贴到ActiveWorkbook Sheet1之后

 Option Explicit Public Sub copy_sheet() Dim source_worksheet As Worksheet Set source_worksheet = ThisWorkbook.Worksheets("Sheet2") Dim target_worksheet As Worksheet Set target_worksheet = ActiveWorkbook.Worksheets("Sheet1") source_worksheet.Copy After:=target_worksheet End Sub 

你不需要所有的可变调光和分配:

 Sub workBooks() ThisWorkbook.Sheet2.Copy After:=ActiveWorkbook.Sheets(7) End Sub