在对我的帖子发表评论后,我通过编写这两个函数想出了一个解决方案。这两者都用于显示数据并克服了不可编辑的总字段的愚蠢性。
Public Function cdblf(ByVal s As Object) As Object
If (IsNumeric(s)) Then
Return CDbl(s)
Else : Return Nothing
End If
End Function
Public Function cdbls(ByVal n As Object, ByVal s As Object, ByVal b As Boolean) As Object
If (IsNumeric(n)) Then
Return CDbl(n)
Else :
If(Not IsNothing(s)) Then
If(b) Then
Return CStr(Left(CStr(s), Len(CStr(s)) - 1))
Else : Return Nothing
End If
Else : Return Nothing
End If
End If
End Function
这些功能结合起来使用应该是这样的:
=Code.cdbls(
Sum(Code.cdblf(Fields!value.Value)),
Fields!value.Value,
InScope("matrix1_row_name") and InScope("matrix1_column_name"))
这既解决了我不想对字符串值求和的事实,也不再需要使用 IIF。