vba + 将工作表从一个工作簿复制到另一个工作簿

问题描述 投票:0回答:1

这个问题在很多论坛都有讨论。我有代码,但它一直显示错误:不匹配。我不知道为什么...

我有 3 本练习册。带有我现在正在编写的宏的那个 (1)。 1 wb 需要从其中复印纸张 (2),然后 1 wb 到需要复印纸张的位置 (3)。

我的代码(1):

Dim sh As Worksheet

Application.ScreenUpdating = False
Sheets("Sheet1").Select

PathNameOrigineel = Range("C2").Value
filenameOrigineel = Range("B2").Value

PathNameNew = Range("C3").Value
FilenameNew = Range("B3").Value

Set wbori = Workbooks.Open(PathNameOrigineel & filenameOrigineel)
Set wbNew = Workbooks.Open(PathNameNew & FilenameNew)
   
wbori.Activate
    For Each sh In wbori.Worksheets
        If sh.Name <> "Database" And sh.Name <> "Template" And sh.Name <> "Help" And sh.Name <> "OVERVIEW" And sh.Name <> "Develop" And sh.Name <> "Schedule" And sh.Name <> "Information" And sh.Name <> "Announcements" And sh.Name <> "Summary"        Then
        Sheets(sh).Copy After:=Workbooks(FilenameNew).Sheets(Sheets.Count)
        End If
    Next
vba excel
1个回答
1
投票

sh
已定义为工作表,因此您不需要
Sheets(sh).Copy
,只需
sh.Copy

For Each sh In wbori.Worksheets
    If sh.Name <> "Database" And sh.Name <> "Template" And sh.Name <> "Help" And sh.Name <> "OVERVIEW" And sh.Name <> "Develop" And sh.Name <> "Schedule" And sh.Name <> "Information" And sh.Name <> "Announcements" And sh.Name <> "Summary"        Then
    sh.Copy After:=Workbooks(FilenameNew).Sheets(wbNew.Sheets.Count)
    End If
Next
© www.soinside.com 2019 - 2024. All rights reserved.