我有一个子程序“Days”,它有一个变量Days。我想将Days变量的值传递给不同的子例程“GetDays”
例如:
子日() Dim Days()作为变体 天=数组(1,3,5,7,10,11) 结束子
Sub GetDay() '我如何在这里获得Days的价值? 结束子
答案 0 :(得分:1)
我不完全确定我理解你所追求的是什么,但我最好的猜测是你要设置一个“DayClass”对象,它既包含日期值,又在需要时将它们返回给其他函数:
(1)在VBA编辑器中,插入 CLASS 模块
(2)在此模块的属性窗口中,将名称更改为(例如) DayClass (覆盖默认名称“Class1”。)
(3)将此代码放入DayClass模块:
Private mDays As Variant ' member variable to hold the days array
' initialization method to populate the array
Private Sub Class_Initialize()
mDays = Array(1, 3, 5, 7, 10, 11)
End Sub
' little function to return a particular value from the array
Public Property Get Day(i As Long)
Day = mDays(i)
End Property
(4)要查看上面的代码,请插入一个常规MODULE并将此小函数放入其中,可以从公式栏中调用(如果需要):
Public Function GetDays(i As Long)
Dim DC As New DayClass ' DC is dim'd of type DayClass
' so via DC you can get at whatever is in there
GetDays = DC.Day(i) ' this function returns the i'th value of the
' array in DayClass, via DayClass's "Get Day" property
End Function
(5)由于“GetDays”是常规代码模块中的公共函数,您可以通过在任何电子表格单元格中输入以下公式来测试它:
=GetDays(3)
cell result = 7