这是我在Latch的帮助下最后得到的代码,这将是一个简单的例子,它以递归的方式改变全局集合中的值,现在是完全功能性的
Public List_of_data As New Collection
Sub main()
ClearCollection List_of_data
List_of_data.Add 7.5
List_of_data.Add 1
Recursive_function List_of_data
End Sub
Public Sub ClearCollection(parmCol As Collection)
Set parmCol = New Collection
End Sub
Public Function Recursive_function(ByRef List_of_data As Collection)
Dim x1
x1 = List_of_data.Item(1)
Dim x2
x2 = List_of_data.Item(2)
If x1 > x2 Then
ClearCollection List_of_data
List_of_data.Add x1
List_of_data.Add x2 + 1
Call Recursive_function(List_of_data)
End If
End Function
答案 0 :(得分:1)
您正在将参数传递给不带任何参数的函数。将您的功能更改为:
Public Function Calculo_de_Dientes_Epicicloidales(byref lista_de_datos)
会得到你想要的结果。
此外,您可以简单地执行以下操作,而不是循环以清空您的收藏:
Public Sub ClearCollection(parmCol As Collection)
set parmCol = new collection
End Sub
答案 1 :(得分:0)
你不能打电话"一个功能。功能提供结果;你需要设置一些等于你的函数的变量。如果您只需要运行代码,并且不需要它来为您提供特定的变量结果,那么将其设为sub,而不是函数。
另外,你有"结束功能"在你为我们复制的最后一行之下?