gpt4 book ai didi

vba - 图表事件 - 代码没有为超过 1 个数据系列拾取值

转载 作者:行者123 更新时间:2023-12-04 20:11:52 25 4
gpt4 key购买 nike

我试图建立一个交互式图表来表示一组数据。在下面的屏幕截图中,如果我们选择不同的按钮,我们可以为图表选择不同的数据系列。我的问题是,通过使用下面的代码,如果系列 1 为真,那么我能够获得 myX 和 myY 的值 ...对于选择的其他系列,我只会得到空白。

enter image description here

Private Sub Chart_MouseUp(ByVal Button As Long, ByVal Shift As Long, _
ByVal x As Long, ByVal y As Long)

Dim ElementID As Long, Arg1 As Long, Arg2 As Long
Dim myX As Variant, myY As Double

With ActiveChart

.GetChartElement x, y, ElementID, Arg1, Arg2

' Did we click over a point or data label?
If ElementID = xlSeries Or ElementID = xlDataLabel Then

On Error Resume Next

If Arg2 > 0 Then
' Extract x value from array of x values
myX = WorksheetFunction.Index(.SeriesCollection(Arg1).XValues, Arg2)
' Extract y value from array of y values
myY = WorksheetFunction.Index _
(.SeriesCollection(Arg1).Values, Arg2)


MsgBox myX & ", " & myY

基本上是线
 myX = WorksheetFunction.Index(.SeriesCollection(Arg1).XValues, Arg2)

如果选择系列 2 或 3,则抛出错误参数无效。如果选择了系列 1,则工作正常。

myX 给了我点击的国家的名字和 myY 的值(value)。

视频链接可查看此 excel 文件中发生的情况。

Chart Template Video Youtube

最佳答案

很傻,但是如果我们使用 FullSeriesCollection 而不是 SeriesCollection 它可以工作。

所以代替线

myX = WorksheetFunction.Index(.SeriesCollection(Arg1).XValues, Arg2)

我必须使用:
myX = WorksheetFunction.Index(.FullSeriesCollection(Arg1).XValues, Arg2)

FullSeriesCollection 的文档似乎给出了解释。 :

The FullSeriesCollection Object (Excel) object enables you to get a filtered out Series Object (Excel) object and filter it back in. It also enables you to iterate over the full set of Series object, filtered out or visible, programmatically. By having the existing SeriesCollection Object (Excel) object contain only the visible series you can programmatically perform operations on only the visible series. It also prevents Microsoft Excel from breaking existing chart solutions on charts with filtered out data.

关于vba - 图表事件 - 代码没有为超过 1 个数据系列拾取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38900364/

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