excel 4个字符排列组合

用excel把已有的4个字符串,排列产生4个字符串为一组的组合,不要重复的,具体如何操作,请教高手怎么做?... 用excel把已有的4个字符串,排列产生4个字符串为一组的组合,不要重复的,具体如何操作,请教高手怎么做? 展开
 我来答
chenjiawei5000
2014-03-01 · TA获得超过2779个赞
知道大有可为答主
回答量:2585
采纳率:30%
帮助的人:2055万
展开全部

excel本身没有这个功能或者函数,用excel做一个自定义函数才能实现。

Sub TEST()
Dim MYAR As Variant, i As Integer, j As Integer, k As Double, p As Integer, q As Integer
Dim NumFree() As Boolean, TotalNum As Double, MyMtrx() As Integer
Dim MyFetch() As Integer
TotalNum = Application.WorksheetFunction.Permut(4, 4)
ReDim NumFree(1 To 4) '输入数字返回该数是否自由(未取)
ReDim MyMtrx(1 To TotalNum, 1 To 4)
ReDim MyFetch(1 To 4) '输入列号,返回该列应取数字
For i = 1 To 4
    MyFetch(i) = i '初始化
Next i
For k = 1 To TotalNum
    For i = 1 To 4 '列号
        MyMtrx(k, i) = MyFetch(i)
    Next i
    
    NumFree(MyFetch(4)) = True '释放最末列的数字
    
    For j = 4 - 1 To 1 Step -1 '从倒数第2列开始往前
        NumFree(MyFetch(j)) = True '释放当前列
        For i = MyFetch(j) + 1 To 4 '向下试探
            If NumFree(i) Then
                MyFetch(j) = i
                NumFree(i) = False
                For p = j + 1 To 4 '从当前列往后逐列从上往下找数
                    For q = 1 To 4 '数字从上往下找
                        If NumFree(q) Then
                            MyFetch(p) = q
                            NumFree(q) = False
                            Exit For
                        End If
                    Next q
                Next p
                Exit For
            End If
        Next i
        If Not NumFree(MyFetch(4)) Then '最末列都取到数了,跳出
            Exit For
        End If
    Next j
Next k
更多追问追答
追问
我是电脑小白,这个看不懂,用的是10版本,可以具体操作下吗?
追答
小白?好吧,我把代码放excel里面,你待会看附件。
笑一笑说一说
科技发烧友

2014-03-01 · 职场办公软件基础应用
笑一笑说一说
采纳数:16868 获赞数:33706

向TA提问 私信TA
展开全部
请上传带行号列标的表格截图,并说明你的要求。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式