我的宏的目标来自大量数据,将数据划分为每个产品的单独工作簿。在我只将特定数据粘贴到文件中之后,我想从工作簿中复制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
因为我要创建多个工作簿,所以我想将我的数组定义为从主文件复制到新文件。对此的帮助将不胜感激。
答案 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关联的每个数组。