Vb.net 使用Excel范围和数组

Vb.net 使用Excel范围和数组,vb.net,Vb.net,在VBA中,我可以轻松地将图纸范围拉入数组,进行操作,然后返回图纸范围。不过,我在VB.Net中执行此操作时遇到了问题 这是我的密码 Rng = .Range("a4", .Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count)) Dim SheetArray(,) As Object = DirectCast(Rng.Value(Excel.XlRangeValueDataType.xlRangeValueDefault), Object(

在VBA中,我可以轻松地将图纸范围拉入数组,进行操作,然后返回图纸范围。不过,我在VB.Net中执行此操作时遇到了问题

这是我的密码

Rng = .Range("a4", .Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count))
Dim SheetArray(,) As Object = DirectCast(Rng.Value(Excel.XlRangeValueDataType.xlRangeValueDefault), Object(,))
For X As Integer = 0 To SheetArray.GetUpperBound(0)
    If IsNothing(SheetArray(X, 0)) Then Exit For
    SheetArray(X, 6) = SheetArray(X, 3)
    SheetArray(X, 7) = CDbl(SheetArray(X, 3).ToString) - CDbl(SheetArray(X, 1).ToString) - _
                                              CDbl(SheetArray(X, 7).ToString)
        For Y As Integer = 0 To 3
            SheetArray(X, Y * 2 + 1) = Math.Round(CDbl(SheetArray(X, Y * 2 + 1).ToString), 3)
        Next
        If Math.Abs(CDbl(SheetArray(X, 7).ToString)) > 0.1 Then _
            .Range(.Cells(X + 1, 1), .Cells(X + 1, 8)).Font.Color = -16776961
Next
我在第一个
上得到一个错误,如果没有(SheetArray(X,0)),则退出执行


线路。它告诉我索引超出了数组的界限。知道为什么吗?
SheetArray
对象包含数据,但我不确定如何获取它。

For
中,必须从0循环到
计数-1

For X As Integer = 0 To SheetArray.GetUpperBound(0) - 1
    '...
Next
那会解决你的问题