|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
张雄友 发表于 2014-12-15 18:29 ![](static/image/common/back.gif)
太强大了,赵版也精通递归了。有个小问题,如果到账金额,有多种情况怎么办? - Dim arr, brr(), m, n, tt#, dzje#, c%
- Sub Macro1()
- m = [a1].CurrentRegion.Rows.Count - 1
- arr = [b2].Resize(m)
- dzje = [b24]
- For n = 1 To m
- Call zhdg("", 0, 0)
- Next
- If c = 0 Then
- MsgBox "没有结果"
- Else
- MsgBox "ok,共有" & c & "组数据。"
- End If
- Erase arr, brr
- c = 0
- End Sub
- Sub zhdg(s$, i, t%)
- If t = n Then
- p = Split(s, ";")
- tt = 0
- For j = 1 To n
- tt = tt + arr(p(j), 1)
- Next
- If tt = dzje Then
- ReDim brr(1 To n, 1 To 1)
- For j = 1 To n
- brr(j, 1) = arr(p(j), 1)
- Next
- c = c + 1
- If c = 1 Then [i1].CurrentRegion.ClearContents
- Cells(1, c + 8).Resize(n) = brr
- If MsgBox("第" & c & "共有" & n & "个数据,是否继续查找?", vbYesNo) = vbNo Then End
- End If
- Exit Sub
- End If
- For j = i + 1 To m
- Call zhdg(s & ";" & j, j, t + 1)
- Next j
- End Sub
复制代码 |
|