更改表中的重复值

时间:2014-04-20 22:03:22

标签: arrays excel vba excel-vba

我有一个函数可以计算一些值并将其分配给一维数组。我需要在其中包含非重复值。因此,如果重复一个值,我必须重新计算,然后再将其传递给数组。有人可以帮我这个吗?

例如:

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

但是每个值数组都需要另一个函数。

1 个答案:

答案 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

不知道你的具体情况,所以只是给你一些东西 希望这会有所帮助。