Sub 二个字()
Dim Arr, Brr, i&, j&, l&, Crr(), N&
With ActiveSheet
Arr = .Range(.Cells(2, "A"), .Cells(.Rows.Count, "A").End(xlUp))
Brr = .Range(.Cells(2, "B"), .Cells(.Rows.Count, "B").End(xlUp))
N = UBound(Arr) * UBound(Brr) + 9
ReDim Crr(1 To N, 1 To 1)
l = 0
For i = 1 To UBound(Arr)
For j = 1 To UBound(Brr)
l = l + 1
Crr(l, 1) = Arr(i, 1) & Brr(j, 1)
Next j
Next i
.Cells(2, "C").Resize(N, 1) = Crr
End With
End Sub
Sub 三个字()
Dim Arr, Brr, i&, j&, k&, l&, Crr(), N&
With ActiveSheet
Arr = .Range(.Cells(2, "A"), .Cells(.Rows.Count, "A").End(xlUp))
Brr = .Range(.Cells(2, "B"), .Cells(.Rows.Count, "B").End(xlUp))
N = UBound(Arr) * UBound(Brr) * UBound(Brr)
ReDim Crr(1 To N, 1 To 1)
l = 0
For i = 1 To UBound(Arr)
For j = 1 To UBound(Brr)
For k = 1 To UBound(Brr)
If j <> k Then
l = l + 1
Crr(l, 1) = Arr(i, 1) & Brr(j, 1) & Brr(k, 1)
End If
Next k
Next j
Next i
.Cells(2, "D").Resize(N, 1) = Crr
End With
End Sub
追问请问两个字的N = UBound(Arr) * UBound(Brr) + 9,这里为什么要加9,个数不就是A列多少个字*B列多少个字吗
追答因为结果数据单元格区域没做清空处理,所以多点空间以分段。