1

我在excel中有数据,它以负值开始,传递零并达到某个正值。我将这组特定的数据放在一个数组中dataset1 = {-9.5,-7,-5.25,-3,-1.1,0,1,5,20,50}(仅作为示例,这些值不是线性间隔的)来进行一些计算。但我需要知道的是最后一个有符号(负数)的数字的索引。
我怎样才能做到这一点?可悲的是没有像IsSigned(..)=true.

4

2 回答 2

3

如果你想在没有循环的情况下做到这一点

Sub test()

    Dim dataset1 As Variant

    dataset1 = Array(-9.5, -7, -5.25, -3, -1.1, 0, 1, 5, 20, 50)

    Debug.Print UBound(Filter(dataset1, "-")) + 1

End Sub
于 2013-05-20T19:35:33.583 回答
0

我的解决方案如下所示:

'Find last signed value
 For i = LBound(concarraycleared, 2) To UBound(concarraycleared, 2)
     If concarraycleared(2, i) < 0 Then
         LastSignedIndex = i
     Else
         Exit For
     End If
 Next i

几个限制:数组需要垂直,一次只能找到最后一个有符号的值,值需要按升序排序。您不能反转搜索顺序。这是针对我的问题量身定制的非常具体的解决方案,因此应将上述解决方案视为第一。

于 2013-05-20T20:19:29.030 回答