2017-04-06 175 views
1

我试图从VBA所在的工作簿(ThisWorkbook)中复制工作表,并将其过滤到用户已打开的其他工作簿(ActiveWorkbook)中。我已经写了一个函数,但我无法让它工作。我之前做过类似的事情,而且我搜索了互联网,但是我找不到解决方案或者为什么它会让我失望。我究竟做错了什么?使用VBA将工作表复制到其他工作簿

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 
+1

'Workbook' <>'String' Sheet2的复制并粘贴,使用'设置wbk1 =工作簿(tWbkName)' – cyboashu

+0

更多这里例子http://stackoverflow.com/a/34886033/4539709 – 0m3r

回答

3

试试这个,看看它是否工作。这将在工作表Sheet ThisWorkbook后在ActiveWorkbook

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 
1

你并不需要所有的变量变暗和分配:

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

我会感谢害羞的downvoter解释如何改进我的答案。谢谢 – user3598756

相关问题