我寫一段代碼,傳輸選擇在Excel表單數據到一個數組,然後將其用於打印上的新的電子表格中的數據。但是,我得到一個「範圍的下標超出」錯誤,即使當我在滾動出現selectArr一個值(i - 1)。這裏是我的代碼:下標超出範圍,即使值被定義
Sub Marascuilo()
Dim numRows As Integer 'Number of rows selected
numRows = Selection.Rows.Count
Dim selectArr() As Double 'Array containing numbers from selected cells
selectArr = loadArr(numRows) 'Load values into array
For i = 2 To UBound(selectArr) - LBound(selectArr) + 2
Sheets("Sheet 4").Cells(i, 2).Value = selectArr(i - 1)
Next
End Sub
'This function loads the values from the selected cells into selectArr.
Function loadArr(numRows) As Double()
Dim ResultArray() As Double
r = 1
For Each v In Selection
ReDim Preserve ResultArray(1 To r)
If v <> "" Then
ResultArray(r) = v.Value
r = r + 1
End If
Next
loadArr = ResultArray
End Function
任何想法,如何解決這個問題?
謝謝!
周杰倫
你確定這個問題是selectArr(I - 1),而不是表( 「表4」)細胞(1,2)? – 2012-04-17 17:35:34
不知道在Excel操作順序也許你需要這個......'因爲我= 2〜(UBound函數(selectArr) - LBOUND(selectArr)+ 2)' – xQbert 2012-04-17 17:36:06
我與託德同意。我有一種感覺,'表(「表4」)'應該是'表(「Sheet4」)':) – 2012-04-17 17:38:01