此行为表头
序号 1 2 3 4 5 6 7 8 9 10 11 12
1 35.88 0 12.88 12.88 35.88 35.88 13.25 10.18 25.6 12.88 27.8 25.1
2 16.57 18.28 0 0 18.28 32.56 36.12 18.28 16.57 16.57
3 32.86 12.68 13.86 32.86 12.68 13.86
4
5 17.28 11.25 19.68 18.25 16.56 25.55 26.86 26.88 0 17.28
说明:
1、用电子表格的方式编程序。
2、原有的原始资料分序号和内容两个部分。序号部分从序号下面的第1个单元格算起至最后一个单元格共2500行。
序号后面的内容共12列(1列至于12列),内容的每1列的行数也和序号一样是2500行。
3、编程运行的结果显示在序号的前面。
4、要求(即编程的目的)经过程序运行把每一行内容里的相同数用等号连接(但不能重复),显示在结果中,
不同的等号组别在结果里分行显示,如果只有1个等号组别只显示一行,有2个等号组别显示2行,有3个等号组别显示3行。
凡0和空格不显示。 此行为表头
结果 序号 1 2 3 4 5 6 7 8 9 10 11 12
1=5=6,3=4=10, 1 35.88 0 12.88 12.88 35.88 35.88 13.25 10.18 25.6 12.88 27.8 25.1
1=10=12,2=5=9, 2 16.57 18.28 0 0 18.28 32.56 36.12 18.28 16.57 16.57
2=5,3=8,4=11, 3 32.86 12.68 13.86 32.86 12.68 13.86
4
1=11, 5 17.28 11.25 19.68 18.25 16.56 25.55 26.86 26.88 0 17.28

解决方案 »

  1.   

    思路:
    首先找出每一行中重复的数字
    用这些重复的数字循环找出该行12列中所有相同的数字,将对应的序号用=连接起来,写入一个空白的单元格大概的代码如下:
    Sub tt()
        
    Dim STRTEMP$, DIGARR(2, 12) As String, strTemp3 As String
    '第一行是序号,从第二行开始做数据
    For i = 2 To 2501
        '首先累积每一行的重复数字
        STRTEMP = ""
        For j = 1 To 12 '循环12列
            strtemp1 = Cells(i, j).Value '每一个单元格都要去检查一下12列的值是否与其相等
            m = 0 '计数器
            For k = 1 To 12 '
                If strtemp1 = Cells(i, k).Value Then '如果相等就加上1
                    m = m + 1
                End If
            Next
            '如果计数器大于1就证明至少有两个相等的数字,并且该数字不在已累积的重复数字中
            If m > 1 And InStr(1, strtmep, strtemp1) = 0 Then
                STRTEMP = STRTEMP & Cells(i, k).Value & "," '继续累积有重复的数字
                For n = 1 To 12 '循环找出12列中与该数字重复的所有数字的序号
                    If strtemp1 = Cells(i, n).Value Then
                        strTemp3 = strTemp3 & Cells(1, n).Value & "="
                    End If
                Next
                Cells(i, 13).Value = Cells(i, 13).Value & Chr(13) & strTemp3 '将用等号连接的序号写入空白的单元格中,用回车符换行
            End If
        Next
    Next
        
    End Sub