gpt4 book ai didi

VBA在多个工作表上设置图表不可见Excel

转载 作者:行者123 更新时间:2023-12-03 02:52:48 25 4
gpt4 key购买 nike

我有大约 9 个不同的工作表,但它们都有 4 种类型的图表(总计、比较、截止日期、趋势)。我正在编写 VBA 以有条件地在每张纸上显示一种类型的图表。例如,如果我想显示总计图表,我希望更新工作簿中的所有工作表。我已经可以使图表在一张纸上变得不可见和可见,但我想在所有纸上都这样做。现在这是我的代码:

Sub UpdateGraph()
Sheets(".graphManager").ChartObjects("Totals").Visible = False
End Sub

我希望能够在所有工作表上执行此操作,因此我尝试了这样的操作:

Sub UpdateGraph()
Dim ws As Worksheet
For Each ws In Sheets
If ws.Visible Then ws.Select (False)
ActiveWorksheet.ChartObjects("Totals").Visible = False
Next
End Sub

但运气不佳。我不想手动将所有工作表名称输入到数组中,因为我将来可能会添加更多工作表并且不想继续更改代码。如何循环遍历所有工作表并将名为“总计”的图表设置为不可见?或者我可以将工作簿中名为“Totals”的所有图表设置为不可见,而不循环浏览工作表吗?谢谢!

最佳答案

您可以传入一个参数来确定每次应该显示哪个图表。然后,在选择图形类型时,您可以调用该函数一次,传入所选图形类型,它将在所有工作表上打开该图形并关闭所有其他图形。

Sub UpdateGraph(graphType As String)
Dim ws As Worksheet
For Each ws In Sheets
For Each co In ws.ChartObjects
'''Turn off all charts on the sheet first'''
ws.ChartObjects(co.Name).Visible = False
Next
'''Turn on the one chart type we want'''
ws.ChartObjects(graphType).Visible = True
Next
End Sub

关于VBA在多个工作表上设置图表不可见Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18498362/

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