引用列表框选择时如何执行DataSeries Fill?

时间:2019-02-10 13:45:27

标签: excel vba

我正在尝试创建一个用户友好的工作表,用户可以在其中使用增长类型“ xlLinear”或“ xlGrowth”来确定是否希望其数据系列增长。

我创建了一个列表框,其中的选择是“线性”或“增长”。从那里,我希望根据该ListBox中的填充类型填充数据系列。到目前为止,我收到了“范围类失败的DataSeries方法”错误,该错误已归因于数据系列代码中的“类型”参数。

我对vba还是很陌生,尽管我尝试使用.Value,.Text和范围本身来提取ListBox单元格的内容。我不认为是ListBox的问题,因为删除ListBox并简单地键入“ Linear”或“ Growth”时会发生相同的问题。

下面,“ RevStream1GrowthType”是指ListBox单元。该代码的第一部分没有问题-仅第二部分。

With ThisWorkbook.Worksheets("Inputs")

Range(.Range("RevStream1Ter").Offset(0, 3 + HistoricNumber + AnalystNumber), .Range("RevStream1GrowthValue")).Name = "Test1"

.Range("Test1").DataSeries Rowcol:=xlRows, Type:="xl" & .Range("RevStream1GrowthType"), Date:=xlDay, Trend:=True

End With

1 个答案:

答案 0 :(得分:1)

xlLinear(实际上是xlDataSeriesLinear)和xlGrowth是Excel XlDataSeriesType枚举的成员,您可以通过枚举名称,点号和然后是所需成员(例如:XlDataSeriesType.xlGrowth)或直接按其值(例如,对于xlDataSeriesLinear为-4132)。您无法使用字符串(常量或变量)调用所需的枚举:"xlLinear""xlGrowth"不起作用。

因此,您必须使用某些函数,该函数将列表框作为输入,以返回正确的XlDataSeriesType枚举值。

例如,

like

.Range("Test1").DataSeries Rowcol:=xlRows, Type:=IIf(.Range("RevStream1GrowthType").Value = "Linear", xlLinear, xlGrowth), Date:=xlDay, Trend:=True