【发布时间】:2017-04-25 12:57:04
【问题描述】:
我在下面有一个代码,它可以从所有活动或打开的工作簿中复制特定的工作表。
但是如何在不打开工作簿的情况下复制同一个工作表,就像我们可以在代码中提供路径一样,它应该能够从该路径的所有工作簿中选择给定的工作表。
下面是当前正在使用的代码。
Sub CopySheets1()
Dim wkb As Workbook
Dim sWksName As String
sWksName = "SHEET NAME"
For Each wkb In Workbooks
If wkb.Name <> ThisWorkbook.Name Then
wkb.Worksheets(sWksName).Copy _
Before:=ThisWorkbook.Sheets(1)
End If
Next
Set wkb = Nothing
End Sub
【问题讨论】:
-
您能否确认工作簿名称是否已知,以便程序可以打开相应的工作簿并复制所需的工作表?
-
使用 Workbooks.Open Method 在后台打开 - 示例
wkb Workbooks.Open ("c:\temp\bookname.xls")也使用Application.ScreenUpdating = False -
@gr8tech 工作簿名称不同,但给定文件夹中所有工作簿的工作表名称相同。代码应选择具有特定名称的工作表(该名称在该文件夹中的所有工作簿中都很常见)。
-
为什么不想打开工作簿?使用
Workbooks.Open后跟各种复制/粘贴操作会非常简单,但没有Open会变得非常困难。 -
@0m3r 先生,我认为您的代码行将从一个工作簿中选择一个特定的工作表。但是我需要一个特定文件夹中所有工作簿中的一个特定工作表。所以,我想知道有没有办法给出所有工作簿的路径/位置,以便它可以从所有这些工作簿中选择一个特定的工作表。