我写了一个函数,它返回通过SSRS输入的8个数值的最小值。
问题是不总是有8个值,当没有时我在SSRS中收到错误。我认为这是因为我正在提供函数空值
我从未使用过VB,是否有人可以向我展示一个解决方案?
使用的代码如下 在这里输入代码
Function minimumReading(reading0 as String
,reading1 as String
,reading2 as String
... 7 as String)
Dim a(7) as String
a(0) = reading0
a(1) = reading1
...
a(7) = reading7
Dim max as string
Dim min as string
max = a(3)
min = a(3)
Dim i as integer
for i = Lbound(a) to Ubound(a)
if a(i) < min Then min = a(i)
next i
minimumReading = min
End Function`
提前致谢
答案 0 :(得分:2)
您是否需要将8个值作为单独的参数传递?创建一个找到数组最小值的函数(可能已经存在)将是更好的形式(也更容易维护长期运行)
如果你必须按照设置的方式使用它,你可以使用这个
Dim a() As String
ReDim a(0 To 0)
Dim i As Long
If reading0 <> vbNullString Then
a(UBound(a)) = reading0
End If
If reading1 <> vbNullString Then
ReDim Preserve a(LBound(a) To (UBound(a) + 1))
a(UBound(a)) = reading1
End If
If reading2 <> vbNullString Then
ReDim Preserve a(LBound(a) To (UBound(a) + 1))
a(UBound(a)) = reading2
End If
...
我的建议是重构您的代码。