传递SeriesCollection对象时出现类型不匹配错误

时间:2013-02-08 15:12:14

标签: excel-vba vba excel

已经在网上搜索了这个问题而没有运气。我使用的是Excel 14.0,即使我讨厌使用VBA进行图表处理,我也别无选择。我需要偶尔更新数十个图表。 Excel只提供了一种简单的方法,例如在源数据范围上查找替换。

也许我对VBA太过复杂了。我知道它有其局限性,但我一直都没有问题地传递物体。这是我想要做的。看起来很简单。我似乎无法传递SeriesCollection对象。尝试ByRef,ByVal,都给出了类型不匹配错误。我甚至尝试过没有With / End With块。我还确保将SeriesCollection参数抛弃错误。我想我可以传递图表对象和seriescollection的整数,但是这个变量太多了。

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

0 个答案:

没有答案