2

已经在网上搜索了这个问题,但没有运气。我正在使用 Excel 14.0,尽管我讨厌将 VBA 用于图表目的,但我别无选择。我需要偶尔更新几十张图表。Excel 只是不提供执行此操作的简单方法,例如在源数据范围上查找替换。

也许我对 VBA 来说太复杂了。我知道它有它的局限性,但我总是毫无问题地传递对象。这是我想要做的。看起来很简单。我似乎无法传递 SeriesCollection 对象。试过 ByRef、ByVal,都给出类型不匹配错误。我什至尝试不使用 With/End With 块。我还确保是 SeriesCollection 参数引发了错误。我想我可以只为 seriescollection 传递图表对象和一个整数,但是 imo 变量太多了。

Sub mcrMyCode1()
    With ActiveChart
        Call mcrSeriesMod(.SeriesCollection(1), "HD", "HO", "Avg", 34, 57)
    End With
End Sub
Sub mcrMyCode2()
    Call mcrSeriesMod(ActiveChart.SeriesCollection(1), "HD", "HO", "Avg", 34, 57)
End Sub

Sub mcrModSeries(ByRef SeriesMod As SeriesCollection, _
                ByVal sStCol As String, _
                ByVal sEndCol As String, _
                ByVal sTitle As String, _
                ByVal iXRow As Integer, _
                ByVal iYRow As Integer)            
    With SeriesMod
        .XValues = "=Sheet1!$" & sStCol & "$" & iXRow & ":$" & sEndCol & "$" & iXRow
        .Values = "=Sheet1!$" & sStCol & "$" & iYRow & ":$" & sEndCol & "$" & iYRow
        .Name = sTitle
    End With
End Sub
4

0 回答 0