2017-04-03 75 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

伟大的工程!格拉西亚斯:) –