|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
- '翻译一下
- '注:只翻译最接近【最佳答案】和有【疑问】的帖子
- 有点难度:
- Dim aStr As Variant, crr() As String
- Sub 宏1()
- Dim arr() As String, brr
- Dim s As String, n As Integer, i As Long, r As Long
- brr = Range("b2:b" & Range("b" & Rows.count).End(xlUp).Row)
- [d:d].ClearContents
- For i = 1 To UBound(brr)
- s = brr(i, 1)
- n = (Len(s) + 1) / 2
- r = Application.Permut(n, n)
- ReDim arr(1 To r)
- ReDim crr(1 To r, 1 To 1)
- aStr = Split(s)
- getall n - 1, n, "", arr, 0
- Range("d" & Rows.count).End(xlUp).Offset(1).Resize(r) = crr
- Next
- End Sub
- Sub getall(ByVal m As Integer, ByVal n As Integer, ByRef a As String, ByRef arr() As String, Optional ByRef count As Long)
- Dim i As Long, j As Long, s As String
- If Len(a) = n Then
- count = count + 1
- arr(count) = a
- s = ""
- For j = 1 To n
- s = s & " " & aStr(Mid(a, j, 1))
- Next
- crr(count, 1) = Mid(s, 2)
- Exit Sub
- End If
- For i = 0 To m
- If InStr(a, i) = 0 Then getall m, n, a & i, arr, count
- Next i
- End Sub
- 普通浏览复制代码保存代码打印代码
- Dim aStr As Variant, crr() As String
- Sub 宏1()
- Dim arr() As String, brr
- Dim s As String, n As Integer, i As Long, r As Long
- brr = Range("b2:b" & Range("b" & Rows.count).End(xlUp).Row)
- [d:d].ClearContents
- For i = 1 To UBound(brr)
- s = brr(i, 1)
- n = (Len(s) + 1) / 2
- r = Application.Permut(n, n)
- ReDim arr(1 To r)
- ReDim crr(1 To r, 1 To 1)
- aStr = Split(s)
- getall n - 1, n, "", arr, 0
- Range("d" & Rows.count).End(xlUp).Offset(1).Resize(r) = crr
- Next
- End Sub
- Sub getall(ByVal m As Integer, ByVal n As Integer, ByRef a As String, ByRef arr() As String, Optional ByRef count As Long)
- Dim i As Long, j As Long, s As String
- If Len(a) = n Then
- count = count + 1
- arr(count) = a
- s = ""
- For j = 1 To n
- s = s & " " & aStr(Mid(a, j, 1))
- Next
- crr(count, 1) = Mid(s, 2)
- Exit Sub
- End If
- For i = 0 To m
- If InStr(a, i) = 0 Then getall m, n, a & i, arr, count
- Next i
- End Sub
- 有点难度:
- 定义变量 为tr 为 变体数据类型 ,crr() 为 字符串
- 过程 宏1()
- 定义变量 arr() 为 字符串 ,brr
- 定义变量 s 为 字符串 ,n 为 整型值 ,i 为 长整型值 ,r 为 长整型值
- brr = 单元格区域("b2:b" & 单元格区域("b" & 行数 . 计数值) . 结束(方向向上) . 行标)
- [d:d] . 清除内容
- 循环范围 i = 1 到 数组上限(brr)
- s = brr(i ,1)
- n = (字符串长度(s) + 1) / 2
- r = 应用程序 . permut(n ,n)
- 重定义变量 arr(1 到 r)
- 重定义变量 crr(1 到 r ,1 到 1)
- astr = 分割字符串(s)
- getall n - 1 ,n ,"" ,arr ,0
- 单元格区域("d" & 行数 . 计数值) . 结束(方向向上) . 偏移(1) . 重调大小(r) = crr
- 下一句
- 结束 过程
- 过程 getall(传值变量 m 为 整型值 ,传值变量 n 为 整型值 ,传址 a 为 字符串 ,传址 arr() 为 字符串 ,选择 传址 计数值 为 长整型值)
- 定义变量 i 为 长整型值 ,j 为 长整型值 ,s 为 字符串
- 如果 字符串长度(a) = n 那么
- 计数值 = 计数值 + 1
- arr(计数值) = a
- s = ""
- 循环范围 j = 1 到 n
- s = s & " " & astr(截取字符串(a ,j ,1))
- 下一句
- crr(计数值 ,1) = 截取字符串(s ,2)
- 退出 过程
- 结束 如果
- 循环范围 i = 0 到 m
- 如果 包含位置(a ,i) = 0 那么 getall m ,n ,a & i ,arr ,计数值
- 下一句 i
- 结束 过程
- 普通浏览复制代码保存代码打印代码
- 定义变量 为tr 为 变体数据类型 ,crr() 为 字符串
- 过程 宏1()
- 定义变量 arr() 为 字符串 ,brr
- 定义变量 s 为 字符串 ,n 为 整型值 ,i 为 长整型值 ,r 为 长整型值
- brr = 单元格区域("b2:b" & 单元格区域("b" & 行数 . 计数值) . 结束(方向向上) . 行标)
- [d:d] . 清除内容
- 循环范围 i = 1 到 数组上限(brr)
- s = brr(i ,1)
- n = (字符串长度(s) + 1) / 2
- r = 应用程序 . permut(n ,n)
- 重定义变量 arr(1 到 r)
- 重定义变量 crr(1 到 r ,1 到 1)
- astr = 分割字符串(s)
- getall n - 1 ,n ,"" ,arr ,0
- 单元格区域("d" & 行数 . 计数值) . 结束(方向向上) . 偏移(1) . 重调大小(r) = crr
- 下一句
- 结束 过程
- 过程 getall(传值变量 m 为 整型值 ,传值变量 n 为 整型值 ,传址 a 为 字符串 ,传址 arr() 为 字符串 ,选择 传址 计数值 为 长整型值)
- 定义变量 i 为 长整型值 ,j 为 长整型值 ,s 为 字符串
- 如果 字符串长度(a) = n 那么
- 计数值 = 计数值 + 1
- arr(计数值) = a
- s = ""
- 循环范围 j = 1 到 n
- s = s & " " & astr(截取字符串(a ,j ,1))
- 下一句
- crr(计数值 ,1) = 截取字符串(s ,2)
- 退出 过程
- 结束 如果
- 循环范围 i = 0 到 m
- 如果 包含位置(a ,i) = 0 那么 getall m ,n ,a & i ,arr ,计数值
- 下一句 i
- 结束 过程
复制代码 |
评分
-
2
查看全部评分
-
|