将工作表数组绑定到特定工作簿

时间:2016-03-23 16:20:55

标签: arrays excel vba excel-vba macros

我的宏的目标来自大量数据,将数据划分为每个产品的单独工作簿。在我只将特定数据粘贴到文件中之后,我想从工作簿中复制5个单独的工作表和所有数据,每个工作表上都有一个数据透视表,将数据透视表上的数据设置为电子表格上的数据我之前复制过的。然后刷新数据透视表。

我最大的问题是如何将一系列工作表命名为工作簿

Dim cell As Range, DataRng As Range
Dim curPath As String, curWB As String, newWB
Dim ArrayCM As Variant
Dim InxW As Long
Dim xTable As PivotTable

curPath = ActiveWorkbook.Path & "\"
curWB = ActiveWorkbook.Name
'Array of worksheets to be copied over for Company Manger
Set ArrayCM = curWB.Sheets(Array("CM YTD", "CM MTD", "CM Refurb", "TBM Local", "PSM")) 
--This Gives me an error

因为我要创建多个工作簿,所以我想将我的数组定义为从主文件复制到新文件。对此的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以将工作表类型var创建为数组,对其进行重新设置并将数组中的每个元素分配给Worksheet Object

GoogleMap

Sub manyWSs() Dim w As Long Dim cwb As Workbook Dim wss() As Worksheet Set cwb = ThisWorkbook With cwb.Worksheets(Array("Sheet1", "Sheet3", "Sheet5")) ReDim wss(1 To .Count) For w = 1 To .Count Debug.Print .Item(w).Name Set wss(w) = .Item(w) Next w End With For w = LBound(wss) To UBound(wss) Debug.Print wss(w).Cells(1, 1).Address(0, 0, external:=True) Next w End Sub 不是真Worksheets collection,因此Worksheets(Array("Sheet1", "Sheet3", "Sheet5"))用于挑选各个部分。每个片段.Item(w)后,单个Worksheet Object的所有属性,方法和成员都可用于具有完整父Workbook object关联的每个数组。