vb.net中双精度值到数组的转换

vb.net中双精度值到数组的转换,vb.net,excel,Vb.net,Excel,我有一个vb.net应用程序,它从excel中获取数据并执行一些操作。 我正在使用excel对象范围从excel获取值。 下面是我正在使用的代码行 xlsRangetrans = xlsWorkbook.Worksheets(SHEET_1).Range("Range1") Dim transArray(,) As Object = xlsRangetrans.Value 如果在Range1中有多个值,则上述代码将成功运行。 但如果我只有一个值,我就会得到错误 例如:xlsRa

我有一个vb.net应用程序,它从excel中获取数据并执行一些操作。 我正在使用excel对象范围从excel获取值。 下面是我正在使用的代码行

    xlsRangetrans = xlsWorkbook.Worksheets(SHEET_1).Range("Range1")
    Dim transArray(,) As Object = xlsRangetrans.Value
如果在Range1中有多个值,则上述代码将成功运行。 但如果我只有一个值,我就会得到错误

例如:xlsRangetras.value有123.0124.0,无,无作为成功运行的System.Array

但如果xlsRangetras.value将123.0作为Double,则会产生错误

在我的例子中,如何将双精度值转换为数组

请帮忙

    Dim helper As Object = xlsRangetrans.Value
    Dim transArray(,) As Object = _
        If(TypeOf helper Is Object(,), helper, {{DirectCast(helper, Object)}})
更新

显然,旧的.NET版本中不存在If运算符。在这种情况下,这段代码可能会有所帮助

    Dim helper As Object = xlsRangetrans.Value
    Dim transArray(,) As Object
    If TypeOf helper Is Object(,) Then
        transArray = helper
    Else
        transArray = {{DirectCast(helper, Object)}}
    End If

语法正确吗。因为我在{{DirectCasthelper,Object}中遇到错误。表达式Expected我认为问题不在于{{}构造,而在于If运算符。如果它能与我上面的更新一起使用,你会尝试吗?我尝试了像“newobject,{{xlsRangetrans.Value,Nothing}”这样的强制转换,而不是DirectCast。它是有效的。。。谢谢你的邀请。。。您正在使用哪些Visual Studio和.NET版本?