我有一个函数可以计算一些值并将其分配给一维数组。我需要在其中包含非重复值。因此,如果重复一个值,我必须重新计算,然后再将其传递给数组。有人可以帮我这个吗?
例如:
array(0) = function(x,y)
arrat(1) = function(a,b)
arrat(2) = function(s,t)
...
array(0) = 1
array(1) = 2
array(2) = 2, this function[function(s,t)] must be recalculated
我尝试了这样的代码:
for i = lbound(arr1) to ubound(arr1) - 1
for j = i + 1 to ubound(arr1)
if arr1(i) = arr1(j) then
'array(i) =?
j=j-1
end if
next j
next i
但是每个值数组都需要另一个函数。
答案 0 :(得分:1)
您可以合并另一个函数,该函数首先检查该值是否已存在。
Function Dupe(oneDarr, myitem) As Boolean
Dim i As Long
For i = Lbound(oneDarr) To Ubound(oneDarr)
If oneDarr(i) = myitem Then Dupe = True: Exit For
Next
End Function
然后在你的主要子中,做这样的事情。
Dim x
Do
x = function(s, t)
If Not Dupe(array, x) Then Exit Do
Loop
array(2) = x
不知道你的具体情况,所以只是给你一些东西 希望这会有所帮助。