|
楼主 |
发表于 2019-3-9 17:40
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
Dim sj, jg(), m&, n&, k&
Sub test() 'by kagawa
' sj = Array("1", "2", "3", "E", "D")
sj = Array(1, 2, 3)
m = UBound(sj) + 1 '元素个数
n = m '从m个数中取n个的排列
ReDim jg(m ^ n, 0)
k = 0
Call dgMN3("", 1)
' [a1].CurrentRegion = ""
' [a1].Resize(k) = jg
' MsgBox k
End Sub
'递归(结果, 层数)
Sub dgMN3(r$, t&)
Dim i&
For i = 0 To m - 1 '1. 随着递归层数的改变,指定元素sj(i)跟着改变
'2. 如果注释循环体,没有递归,结果只是普通调用
If t < n Then
Debug.Print "递", sj(i) '3. 递不输出
Call dgMN3(r & sj(i), t + 1)
Else
Debug.Print "归", sj(i), r & sj(i) '4. 归才输出
' jg(k, 0) = "'" & r & sj(i)
' k = k + 1
End If
Next
End Sub
翻到了以前群子老师的方法,这题是if套for,还有其它题解答for套if。
虽仍不是很理解,但至少比自己上次看到时好点。
所以那还是慢慢看好了,因为随着这种好一点的感觉慢慢增多,也就能理解的更多吧
|
|