完善了一下: Dim arr2(1 To 256) Sub dd() Dim t Dim arr Dim rg As Range t = Timer Call re Selection = "" For Each rg In Selection.Areas rc = rg.Rows.Count cc = rg.Columns.Count r = rg.Row c = rg.Column ReDim arr1(1 To r + rc - 1, 1 To c + cc - 1) For x = 1 To rc For y = 1 To cc arr1(x, y) = arr2(c + y - 1) & x + r - 1 Next y Next x rg = arr1 Erase arr1 Next rg MsgBox Timer - t End Sub Sub re() Dim arr, arr1 arr = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z") arr1 = Array("A", "B", "C", "D", "E", "F", "G", "H", "I") For x = 1 To 26 arr2(x) = arr(x - 1) Next x For x = 0 To 8 For y = 0 To 25 k = k + 1 If 26 + k > 256 Then Exit For arr2(26 + k) = arr1(x) & arr(y) Next y Next x End Sub |