【问题标题】:Excel VBA: Making Pivot Table from list of Sheet namesExcel VBA:从工作表名称列表制作数据透视表
【发布时间】:2013-09-27 07:09:16
【问题描述】:

这是一个宏的开始,它根据指定工作表中的单元格成功创建数据透视表:

aray = Array("'Sheet1'!R1C5:R102C10", "'Sheet2'!R1C5:R102C10", "'Sheet3'!R1C5:R102C10", "'Sheet4'!R1C5:R102C10")

ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= aray, _
    Version:= _
    xlPivotTableVersion15).CreatePivotTable TableDestination:= _
    "'[Filename.xlsm]sheet5'!R1C1", TableName:= _
    "RatingSumPiv", DefaultVersion:=xlPivotTableVersion15

我的问题是我不知道床单的名称或数量。它们的名称将在名为“UnitNumbers”的范围(ListObject)中。

如何自动将工作表名称加载到数组中?

【问题讨论】:

    标签: vba excel pivot-table


    【解决方案1】:
    Sub Sample()
    Dim loSheetNames As ListObject
    Dim rngCurrentSheetName As Range
    Dim toprowoflo As Long
    Dim lngCurrentIndex As Long
    
    Set loSheetNames = ActiveWorkbook.Worksheets("Sheet1").ListObjects("listob1")
    toprowoflo = loSheetNames.Range.Row
    ReDim aray(loSheetNames.Rows.Count)
    
    For Each rngCurrentSheetName In loSheetNames.Range
        lngCurrentIndex = rngCurrentSheetName.Row - toprowoflo + 1
        aray(lngCurrentIndex) = rngCurrentSheetName & "!R1C5:R102C10"
    Next rngCurrentSheetName
    
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:=aray, _
        Version:= _
        xlPivotTableVersion15).CreatePivotTable TableDestination:= _
        "'[Filename.xlsm]sheet5'!R1C1", TableName:= _
        "RatingSumPiv", DefaultVersion:=xlPivotTableVersion15
    
    End Sub
    

    【讨论】:

    • 感谢您的快速回复。 toprowoflo = itemslist.Range.Row 给我一个错误;你的意思是说toprowoflo = loSheetNames.Range.Row?此外,我在 ReDim Preserve aray(lngCurrentIndex) 处收到“类型不匹配”错误。
    • 另外,因为我知道有多少工作表名称(它是 loSheetNames 中的行数),我不能在循环之外对数组进行一次调暗,而不是反复调暗它吗?
    • ReDim aray(loSheetNames.Rows.Count) 使数组的长度与列表对象中的行数相同。是的 itemslist.Range.Row 应该是 toprowoflo = loSheetNames.Range.Row 现在更新代码。
    • 再次感谢。我讨厌挑剔,但它必须是ReDim aray(loSheetNames.Range.Rows.Count) 但它有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    相关资源
    最近更新 更多