|
- Sub test()
- Dim i%, j%, m%, n%, w%
- Dim arr()
- w = Application.InputBox(prompt:="请输入奇数维数", Title:="操作提示", Default:=21, Type:=1)
- If w Mod 2 = 0 Then
- MsgBox "输入的维数不是奇数!"
- Exit Sub
- End If
- a = Int(w / 2) + 1
- ReDim arr(1 To w, 1 To w)
- m = a
- n = a
- For i = 1 To w ^ 2
- arr(m, n) = i
- If m >= a Then
- If n >= a Then
- If arr(m, n - 1) = "" Then
- n = n - 1
- Else
- m = m + 1
- End If
- Else
- If arr(m - 1, n) = "" Then
- m = m - 1
- Else
- n = n - 1
- End If
- End If
- Else
- If n < a Then
- If arr(m, n + 1) = "" Then
- n = n + 1
- Else
- m = m - 1
- End If
- Else
- If arr(m + 1, n) = "" Then
- m = m + 1
- Else
- n = n + 1
- End If
- End If
- End If
- Next
- With Worksheets("sheet1")
- .Cells.Clear
- .Range("a1").Resize(UBound(arr), UBound(arr, 2)) = arr
- .Columns(1).Resize(, w).AutoFit
- End With
- End Sub
复制代码 |
|