gpt4 book ai didi

excel - VBA 将数据透视表的 `.ShowDetail` 保存到单个工作簿

转载 作者:行者123 更新时间:2023-12-04 20:27:31 26 4
gpt4 key购买 nike

我有一个包含客户列表的 Excel 项目。每个客户每年都有一个总支出,每当我点击每个客户的每一年时,它都会打开一个包含该年信息的动态表。相反,我想为每个客户将结果导出到不同的 excel 文件中。

这是一个例子:
enter image description here

我见过其他人有同样的问题,但仍然不明白出了什么问题。我没有使用 VBA 的经验,我正在帮助一个 friend ,所以也许这是一些我不知道的基本知识。
该错误与 ShowDetail 和单元格有关,它可能无法捕获循环中的内容。

 Sub Reports()

Dim i As Double
Dim Ini As Double
Dim Fin As Double

Application.ScreenUpdating = False

Sheets("MainTable").Select
With Sheets("MainTable")

Ini = Columns(1).Range("A2").End(xlDown).Row
Fin = .PivotTables(1).PivotFields("Name").VisibleItems.Count

For i = 1 To Fin

.Cells(i + Ini, 2).ShowDetail = True

Sheets(1).Name = .Cells(i + Ini, 1).Value

ActiveSheet.Select

ActiveSheet.Move

Application.DisplayAlerts = False

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & ActiveSheet.Name

ActiveWorkbook.Close False

Next i

End With

Application.ScreenUpdating = True

End Sub

我希望这可以为每个客户将结果导出到不同的 excel 文件中。

提前致谢!

最佳答案

问题:

  • 第一个是对值设置为 .ShowDetails 的单元格的错误引用。
  • 然后它会重命名Sheet(1)每次都在循环中。

  • 代码:
    Sub Reports()

    Dim i As Double
    Dim Ini As Double
    Dim Fin As Double
    Dim wb As Workbook: Set wb = ThisWorkbook

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    With Sheets("MainTable")

    Ini = .Columns(1).Range("A2").End(xlDown).row
    Fin = .PivotTables(1).PivotFields("Name").VisibleItems.Count

    For i = 1 To Fin

    .Cells(i + Ini - Fin - 1, 2).ShowDetail = True

    ActiveSheet.Name = .Cells(i + Ini - Fin - 1, 1).Value & .Cells(Ini - Fin - 1, 2).Value
    ActiveSheet.Move
    ActiveWorkbook.SaveAs fileName:=ThisWorkbook.path & "\" & ActiveSheet.Name
    ActiveWorkbook.Close False

    Next i

    End With

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

    End Sub

    代码将适用于从 A2 开始的 Pivot并且看起来类似于

    enter image description here

    您可以为其他年份创建另一个循环。作为示例,我创建了这个简短的 Pivot。

    关于excel - VBA 将数据透视表的 `.ShowDetail` 保存到单个工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57263131/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com