gpt4 book ai didi

excel - VBA如何找到最接近的数字

转载 作者:行者123 更新时间:2023-12-03 02:36:56 24 4
gpt4 key购买 nike

我有一个范围(以一定的间隔变化)。对于每次变化,我希望找到最接近 0.5 的范围内的数字,无论是上行还是下行。因此,举例来说,如果我有:0.420.480.510.53

我想要 0.48 和 0.51。

现在我有这个代码:

 Set Rng = Sheet1.Range("L" & FirstRow & ":L" & RangeCount)
MaximumInRange = WorksheetFunction.Max(Rng)

我正在计算范围内的最大值,但它毫无用处。我不知道如何获取最大数 < 0.5 和最小数 > 0.5。

谢谢!

最佳答案

这可能有帮助:

Function BestStraddle(R As Range, target As Double) As Variant
'Returns a variant array which consists
'of the largest value < target and
'smallest value > target

Dim c As Range
Dim v As Variant, lower As Variant, upper As Variant

For Each c In R.Cells
v = c.Value
If v < target Then
If IsEmpty(lower) Then
lower = v
ElseIf lower < v Then
lower = v
End If
ElseIf v > target Then
If IsEmpty(upper) Then
upper = v
ElseIf upper > v Then
upper = v
End If
End If
Next c

BestStraddle = Array(lower, upper)

End Function

使用 A1:A4 中的测试数据,如果我运行:

Sub test()
Dim A As Variant
A = BestStraddle(Range("A1:A4"), 0.5)
Debug.Print A(0)
Debug.Print A(1)
End Sub

然后 0.48 和 0.51 被打印到立即窗口。

关于excel - VBA如何找到最接近的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36790272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com