首页 > 解决方案 > 在函数内调用表

问题描述

我有一个返回表的函数 (genDist),以及另一个需要该表来计算其他内容的函数 (VVPPx)。当我单独运行这些函数时,它们会起作用(首先创建表,然后为另一个函数选择表);但是,如果我编写函数 VVPX(genDist(97),N,0.03) 它不起作用。我错过了什么吗?

Function genDist(intX As Integer) As Variant    
Dim disTable() As Double, foo As Double, limsup As Integer, k As Integer    
limsup = 100 - intX    
ReDim disTable(1 To limsup + 1, 1 To 2)    
disTable(1, 1) = 0: disTable(1, 2) = 0: foo = 1    
For k = 1 To limsup    
foo = foo * (1 - ThisWorkbook.Sheets("Hoja1").Cells(intX - 15 + 2 + k, 2))    
disTable(k + 1, 1) = 1 - foo    
disTable(k + 1, 2) = k    
Next k    
genDist = disTable()    
End Function  

Function VVPPx(DistTable As Range, NoSimu As Long, dblTaux As Double) As Variant    
Dim A() As Double, j As Long    
ReDim A(1 To NoSimu) As Double    
For j = 1 To NoSimu    
    A(j) = 1 / (1 + dblTaux) ^ AgeDeath(DistTable)        
Next j    
VVPPx = A()    
End Function

标签: excelvbafunction

解决方案


Gendist 返回一个包含数组的变体,但 VVPPx 需要 Range 作为输入。


推荐阅读