2017-04-03 74 views
0

我正在嘗試創建一個數組函數,它將顛倒選定數據行的順序。翻轉一行的順序

Function Flip(R) 

    Dim n as variant 
    Dim i as long 
    ReDim A(1, n) 
    n = R.Rows.Columns.Count 

    For i = 1 To n 
     A(1, n - 1) = R.Cells(1, n) 
    Next i 
    Flip= A 
End Function 

這樣做的目標是能夠顛倒一行單元格的順序。例如:如果單元格的順序爲20,30,40,120,則使用此數組函數應返回值120,40,30,20。

我知道我在如何調用n值來重新排列數組順序。我也嘗試過讓它成爲「A(n,1)」,但這也行不通。

回答

2

您在爲其分配值之前使用的是n。另外,數組指針並不完全正確。這應該這樣做:

Function Flip(R As Range) 

Dim n As Variant 
Dim i As Long 

n = R.Cells.Count 
ReDim A(1 To 1, 1 To n) 

For i = 1 To n 
    A(1, 1 + n - i) = R.Cells(1, i).Value 
Next i 

Flip = A 

End Function 
+0

偉大的工程!格拉西亞斯:) –