gpt4 book ai didi

excel - 在 VBA 中使用 XLDOWN

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

我有一个生成数据透视表并将其粘贴到工作表中的宏。我想对该表中的数据进行一些计算,然后根据这些计算创建一个图表。目前我有下面的 VBA,它运行良好,但是数据透视表已经开始有不同数量的行,而不是总是 48 行。我希望能够动态生成图表,无论数据透视表最终有多少行.数据透视表数据将始终以 A64 开头(A63 中的标题是我不需要的),并且底部有一个我不想要的总计,所以我想我将不得不使用 xldown - 1 或其他东西相似的。工作表上有多个表格,但它们之间有空格。

我想在这种情况下我需要使用 End XLDOWN 但我不确定该怎么做。任何人都可以帮忙吗?

Range("Pivots!$E64).Formula = "=((C64/B64)/DATA!$Y$5)"
Range("Pivots!$E65).Formula = "=((C65/B65)/DATA!$Y$5)"

... and so on down to

Range("Pivots!$E111).Formula = "=((C111/B111)/DATA!$Y$5)"

ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Range("Pivots!$E$64:$E$111")
ActiveChart.SeriesCollection(1).XValues = "=Pivots!$A$64:$A$111"

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.Parent.Cut
Sheets("Front Sheet").Select

Range("B23").Select
ActiveSheet.Paste

最佳答案

您可以将数据透视表末尾的行存储为:

Dim LRow as Long
LRow = Sheets("Pivots").Range("B3").End(XLDown).Row -1

然后,您可以使用 LRow 变量来表示数据透视表的最后一行。您需要使用循环来设置公式,例如 Dim LLoop As Long
For LLoop = 64 To LRow
Sheets("Pivots").Range("$E" & LLoop).Formula = "=((C" & LLoop & "/B" & LLoop & ")/DATA!$Y$5)"
Next LLoop

最后,您可以使用相同的 LRow 变量设置数据透视图的源数据和 XValue。
ActiveChart.SetSourceData Source:=Sheets("Pivots").Range("$E$64:$E$" & LRow)
ActiveChart.SeriesCollection(1).XValues = "=Pivots!$A$64:$A$" & LRow

关于excel - 在 VBA 中使用 XLDOWN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35776468/

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