我几乎完成了比较两个数组的电子表格,并且将一个数组中而不是另一个数组中的任何内容放入第三个数组中。
然后,我想将数组中的值放到工作簿工作表上的单元格中,但是即使数组在调试器中显示了一个值,我也会得到一个超出范围的下标。
这是打印数组的循环:
If (Not MissingLoans) = -1 Then
ThisWorkbook.Sheets("Inputs and Results").Cells(PrintCell, 1) = "No Missing Loans Found on Roll-Up"
Else
For i = 1 To (UBound(MissingLoans())) Step 1
*** ThisWorkbook.Sheets("Inputs and Results").Cells(PrintCell, 1).Value = MissingLoans(i)
PrintCell = PrintCell + 1
Next
End If
我在给出超出范围错误的行旁边加上星号,但 MissingLoans(I) 显示了一个值。事实上 Missingloans(1) 是数组中的唯一值。
最佳答案
如果数组中只有一个值,则应使用 Missingloans(0)
访问它因为数组是从 0 开始的。
尝试这个
For i = LBound(MissingLoans()) To (UBound(MissingLoans())) Step 1
ThisWorkbook.Sheets("Inputs and Results").Cells(PrintCell, 1).Value = MissingLoans(i)
PrintCell = PrintCell + 1
Next
关于arrays - 在 VBA 中将 Long 数组打印到单元格并获取下标超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38921917/