簡體   English   中英

如何使用 VBA 在 Excel 中引用“活動/選定”圖表數據點

[英]How to reference "active/selected" chart data point in Excel using VBA

我正在尋找一種使用 VBA 在 Excel 中引用活動/選定圖表數據點的方法。

想象一下,我有一個折線圖,我想向其中添加一個誤差條。 但是,我不想在整個系列中添加誤差線,而只想添加到一個選定的點。 請參閱下面的屏幕:

在此處輸入圖片說明

我想要做的是添加一個垂直誤差條,指向 X 軸,如下所示: 在此處輸入圖片說明

我知道如何在 Excel 中做到這一點,有多種方法,例如,添加一個新的單點系列,然后添加一個錯誤欄。 還有其他方法。 我遇到的問題是如何引用活動/選定的數據點。

如果我選擇創建一個新的單點系列,我需要知道點數才能做到這一點。 我知道(我使用過它)您可以使用 Points 對象/方法來引用點。 遺憾的是,我不知道如何提取選定的點編號、坐標等,以便稍后在我的項目中使用它。

我無法添加任何代碼,因為我所做的一切都是格式化和使用誤差條,以及遍歷現有的所有數據點(在這種情況下代碼沒有用)。 我正在尋找的是選定的點信息,因此我可以將其稱為 .Point(x) ,其中 x 是我之前提取的點號,而不會像 .Point(8) 那樣被迫立即參考點號(我願意不知道具體的數字,因為我只是點擊了它)。

我已經看到了使用圖表事件提取它的方法,但這對於我在我的小簡單項目中想要做的事情來說是一種矯枉過正(尤其是如何在類模塊之外引用其他宏中的“提取”點)。

有任何想法嗎? 非常感謝所有幫助,因為我在 3 天試圖找到引用它的方法后迷路了。

要獲取索引,您可以解析點的Name ,其格式為:

S<series number>P<point number>

Sub Test()
    If TypeOf Selection Is Point Then        
        Dim p as Point
        Set p = Selection

        Debug.Print CLng(Split(p.Name, "P")(1)) ' this is p's index
    End If
End Sub

要獲得有關該點的更多信息,例如 x 和 y 值,也許您可​​以執行以下操作:

Sub Test()
    If TypeOf Selection Is Point Then
        Dim p As Point
        Set p = Selection

        Dim i As Long
        i = CLng(Split(p.Name, "P")(1))

        Dim s As Series
        Set s = p.Parent

        Debug.Print s.Values(i) ' Values is a one-based array so you can use the point index to get its corresponding value
        Debug.Print s.XValues(i)
    End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM