【发布时间】:2017-02-27 05:00:23
【问题描述】:
问题:我想创建一个动态数组,当事件发生时改变大小(事件计算),通过保留其内容并将其大小扩展一。假设我想为双精度向量(以及日期类型)执行此操作。特定单元格中的数据正在更新。
我的理解:我正在“计算 Excel”事件中编码。我不能使用“公共”,我必须将数组声明为私有,然后使用 Get 和 Let Property...但是,在这种情况下如何使用 Redim Preserve?另外,我想我可能遗漏了一些关于如何使用它的要点:这是我编写的代码示例:
类名称:“Class1” 班级代码:
代码:
Option Explicit
Private IntradayValueSerie1() As Double 'Dynamic vector which will contain Y1 Values
Public Counter As Long
Public Property Let vIntradayValueSerie1(ByVal Counter_Value As Long)
IntradayValueSerie1(Counter_Value) = Sheets("Sheet1").Range("C5")
End Property
Public Property Get vIntradayValueSerie1(ByVal Counter_Value As Long) As Variant
vIntradayValueSerie1(Counterr) = IntradayValueSerie1
End Property
所以我想要“让”来赋予我扩展数组的新值 我希望“获取”返回数组(扩展和更新) 备注:计数器将在事件“Worksheet.Calculate”部分的末尾更新并增加
测试代码(必须在事件“Worksheet.Calculate”部分中)
代码:
counter = 1
Dim Serie1 As New Class1
Serie1.IntradayValueSerie1(Counter) = ??? I don't know how to use the property to initialize the vector
counter = counter +1
ReDim Preserve IntradayValueSerie1(Counter)
另外,由于我想返回一个数组,我必须为 Get 属性设置 Variant 吗?如您所见,有些地方让我感到困惑,无论是在使用上还是在结构上。
感谢您的宝贵时间!
【问题讨论】:
标签: arrays excel vba dynamic properties