'看这个是不是你想要的,另一次给另一个发了,到现在都不给结贴,郁闷. '地址:http://topic.csdn.net/u/20080710/09/5d6dea66-02b1-4f9f-9d7d-6b65638ed1ac.html Private Enum Way curLeft = 1 '左转 curRight = 2 '右转 End Enum Private Enum Incept LeftTop = 1 '起始点左上角 RightTop = 2 '起始点右上角 LeftBottom = 3 '起始点左下角 RightBottom = 4 '起始点右下角 End Enum Private Function LoadData(Data() As String, BeginRow As Long, BeginColumn As Long, RowCount As Long, ColumnCount As Long, curWay As Way, curIncept As Incept, inceptIndex As Long, returnArr() As String) If BeginRow > RowCount Then Exit Function If BeginColumn > ColumnCount Then Exit Function If curWay = curLeft Then Select Case curIncept Case LeftTop For i = BeginRow To RowCount inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, BeginRow) Next
For i = BeginColumn + 1 To ColumnCount inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(RowCount, i) Next
For i = RowCount - 1 To BeginRow Step -1 If RowCount - 1 = BeginRow Then Exit Function inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, ColumnCount) Next
For i = ColumnCount - 1 To BeginColumn + 1 Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(BeginColumn, i) Next Case RightTop For i = ColumnCount To BeginColumn Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(BeginColumn, i) Next For i = BeginRow + 1 To RowCount inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, BeginRow) Next
For i = BeginColumn + 1 To ColumnCount If BeginColumn + 1 = ColumnCount Then Exit Function inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(RowCount, i) Next
For i = RowCount - 1 To BeginRow + 1 Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, ColumnCount) Next Case LeftBottom For i = BeginColumn To ColumnCount inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(RowCount, i) Next
For i = RowCount - 1 To BeginRow Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, ColumnCount) Next
For i = ColumnCount - 1 To BeginColumn Step -1 If ColumnCount - 1 = BeginColumn Then Exit Function inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(BeginColumn, i) Next
For i = BeginRow + 1 To RowCount - 1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, BeginRow) Next Case RightBottom For i = RowCount To BeginRow Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, ColumnCount) Next
For i = ColumnCount - 1 To BeginColumn Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(BeginColumn, i) Next
For i = BeginRow + 1 To RowCount If BeginRow + 1 = RowCount Then Exit Function inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, BeginRow) Next
For i = BeginColumn + 1 To ColumnCount - 1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(RowCount, i) Next End Select Else Select Case curIncept Case LeftTop For i = BeginColumn To ColumnCount inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(BeginRow, i) Next
For i = BeginRow + 1 To RowCount inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, ColumnCount) Next
For i = ColumnCount - 1 To BeginColumn Step -1 If ColumnCount - 1 = BeginColumn Then Exit Function inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(RowCount, i) Next
For i = RowCount - 1 To BeginRow + 1 Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, BeginRow) Next
Case RightTop For i = BeginRow To RowCount inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, ColumnCount) Next
For i = ColumnCount - 1 To BeginColumn Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(RowCount, i) Next
For i = RowCount - 1 To BeginRow Step -1 If RowCount - 1 = BeginRow Then Exit Function inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, BeginRow) Next
For i = BeginColumn + 1 To ColumnCount - 1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(BeginRow, i) Next Case LeftBottom For i = RowCount To BeginRow Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, BeginRow) Next
For i = BeginColumn + 1 To ColumnCount inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(BeginRow, i) Next
For i = BeginRow + 1 To RowCount If BeginRow + 1 = RowCount Then Exit Function inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, ColumnCount) Next
For i = ColumnCount - 1 To BeginColumn + 1 Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(RowCount, i) Next Case RightBottom For i = ColumnCount To BeginColumn Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(RowCount, i) Next
For i = RowCount - 1 To BeginRow Step -1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, BeginRow) Next
For i = BeginColumn + 1 To ColumnCount If BeginColumn + 1 = ColumnCount Then Exit Function inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(BeginRow, i) Next
For i = BeginRow + 1 To RowCount - 1 inceptIndex = inceptIndex + 1 returnArr(inceptIndex) = Data(i, ColumnCount) Next
End Select End If LoadData Data, BeginRow + 1, BeginColumn + 1, RowCount - 1, ColumnCount - 1, curWay, curIncept, inceptIndex, returnArr End Function
'看这个是不是你想要的,另一次给另一个发了,到现在都不给结贴,郁闷.
'地址:http://topic.csdn.net/u/20080710/09/5d6dea66-02b1-4f9f-9d7d-6b65638ed1ac.html
Private Enum Way
curLeft = 1 '左转
curRight = 2 '右转
End Enum
Private Enum Incept
LeftTop = 1 '起始点左上角
RightTop = 2 '起始点右上角
LeftBottom = 3 '起始点左下角
RightBottom = 4 '起始点右下角
End Enum
Private Function LoadData(Data() As String, BeginRow As Long, BeginColumn As Long, RowCount As Long, ColumnCount As Long, curWay As Way, curIncept As Incept, inceptIndex As Long, returnArr() As String)
If BeginRow > RowCount Then Exit Function
If BeginColumn > ColumnCount Then Exit Function
If curWay = curLeft Then
Select Case curIncept
Case LeftTop
For i = BeginRow To RowCount
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, BeginRow)
Next
For i = BeginColumn + 1 To ColumnCount
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(RowCount, i)
Next
For i = RowCount - 1 To BeginRow Step -1
If RowCount - 1 = BeginRow Then Exit Function
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, ColumnCount)
Next
For i = ColumnCount - 1 To BeginColumn + 1 Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(BeginColumn, i)
Next
Case RightTop
For i = ColumnCount To BeginColumn Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(BeginColumn, i)
Next
For i = BeginRow + 1 To RowCount
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, BeginRow)
Next
For i = BeginColumn + 1 To ColumnCount
If BeginColumn + 1 = ColumnCount Then Exit Function
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(RowCount, i)
Next
For i = RowCount - 1 To BeginRow + 1 Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, ColumnCount)
Next
Case LeftBottom
For i = BeginColumn To ColumnCount
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(RowCount, i)
Next
For i = RowCount - 1 To BeginRow Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, ColumnCount)
Next
For i = ColumnCount - 1 To BeginColumn Step -1
If ColumnCount - 1 = BeginColumn Then Exit Function
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(BeginColumn, i)
Next
For i = BeginRow + 1 To RowCount - 1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, BeginRow)
Next
Case RightBottom
For i = RowCount To BeginRow Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, ColumnCount)
Next
For i = ColumnCount - 1 To BeginColumn Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(BeginColumn, i)
Next
For i = BeginRow + 1 To RowCount
If BeginRow + 1 = RowCount Then Exit Function
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, BeginRow)
Next
For i = BeginColumn + 1 To ColumnCount - 1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(RowCount, i)
Next
End Select
Else
Select Case curIncept
Case LeftTop
For i = BeginColumn To ColumnCount
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(BeginRow, i)
Next
For i = BeginRow + 1 To RowCount
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, ColumnCount)
Next
For i = ColumnCount - 1 To BeginColumn Step -1
If ColumnCount - 1 = BeginColumn Then Exit Function
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(RowCount, i)
Next
For i = RowCount - 1 To BeginRow + 1 Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, BeginRow)
Next
Case RightTop
For i = BeginRow To RowCount
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, ColumnCount)
Next
For i = ColumnCount - 1 To BeginColumn Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(RowCount, i)
Next
For i = RowCount - 1 To BeginRow Step -1
If RowCount - 1 = BeginRow Then Exit Function
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, BeginRow)
Next
For i = BeginColumn + 1 To ColumnCount - 1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(BeginRow, i)
Next
Case LeftBottom
For i = RowCount To BeginRow Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, BeginRow)
Next
For i = BeginColumn + 1 To ColumnCount
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(BeginRow, i)
Next
For i = BeginRow + 1 To RowCount
If BeginRow + 1 = RowCount Then Exit Function
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, ColumnCount)
Next
For i = ColumnCount - 1 To BeginColumn + 1 Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(RowCount, i)
Next
Case RightBottom
For i = ColumnCount To BeginColumn Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(RowCount, i)
Next
For i = RowCount - 1 To BeginRow Step -1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, BeginRow)
Next
For i = BeginColumn + 1 To ColumnCount
If BeginColumn + 1 = ColumnCount Then Exit Function
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(BeginRow, i)
Next
For i = BeginRow + 1 To RowCount - 1
inceptIndex = inceptIndex + 1
returnArr(inceptIndex) = Data(i, ColumnCount)
Next
End Select
End If
LoadData Data, BeginRow + 1, BeginColumn + 1, RowCount - 1, ColumnCount - 1, curWay, curIncept, inceptIndex, returnArr
End Function