IsNumeric在这里很有用,但问题IIf是它不会短路,所以如果你正在投射数据,你可能会遇到错误。
例如,如果您使用CDec允许将数字格式应用于字符串,它将应用于所有情况,并在字符串不是数字时引发错误。
一种安全的方法是创建一个简单的自定义代码函数来处理格式并在LookupSet表达式中使用它。
因此,在报告中添加一些自定义代码,例如:
Public Function FormattedString(ByVal st as String) as String
    If IsNumeric(st)
      Return Format(CDec(st), "N2")
    End If
  Return st
End Function
并更改您的表达式以使用此新FormattedString功能:
=Join(LookupSet(Fields!QuestionId.Value, Fields!QuestionID.Value, 
Code.FormattedString(Fields!ScalarValue.Value), "myResponse"), Constants.VbCrLf)
我针对以下数据进行了测试:

具有上述表达式的简单表看起来是必需的:

所以它对我来说适用于混合数据 - 您可以根据需要更改自定义代码中的格式化逻辑。