If Cells(AAA, "A") =Cells(CCC, "C") Then       修改为      'If Cells(AAA, "A") <> Cells(CCC, "C") Then
前一个是选出不同部分执行没问题,后一个是想选出相同部分怎么就不执行了,谢谢解答下!!
Sub foreach()
    Dim AAA, CCC, K    For AAA = 2 To 8
        For CCC = 2 To 8
           If Cells(AAA, "A") <> Cells(CCC, "C") Then             'If Cells(AAA, "A") = Cells(CCC, "C") Then
                GoTo 100
            End If
        Next CCC
        K = K + 1
        Cells(K + 1, "E") = Cells(AAA, "A")
        Cells(K + 1, "F") = Cells(AAA, "B")
        
100:
    Next AAA
End Sub

解决方案 »

  1.   

    这么简单的功能竟然用到了goto
    楼主你这得是多想不开啊
      

  2.   

    Sub foreach()
         Dim AAA, CCC, K
         K = 0
         For AAA = 2 To 8
             For CCC = 2 To 8
                If Cells(AAA, "A") <> Cells(CCC, "C") Then             
                'If Cells(AAA, "A") = Cells(CCC, "C") Then
                   K = K + 1
                   Cells(K + 1, "E") = Cells(AAA, "A")
                   Cells(K + 1, "F") = Cells(AAA, "B")
                 End If
             Next CCC
         Next AAA
     End Sub 
      

  3.   


    Sub foreach()
          Dim AAA, CCC, K
          K = 0
          For AAA = 2 To 8
              For CCC = 2 To 8
                 If Cells(AAA, "A") = Cells(CCC, "C") Then
                 'If Cells(AAA, "A") = Cells(CCC, "C") Then
                    K = K + 1
                    Cells(K + 1, "E") = Cells(AAA, "A")
                    Cells(K + 1, "F") = Cells(AAA, "B")
                    Exit For
                  End If
              Next CCC
          Next AAA
    End Sub抱歉抱歉   试试这个吧   测试过了
      

  4.   

    上面的是选相同部分的代码这个是选A列有而C列没有的代码Sub foreach()
        Dim AAA, CCC, K, Flag
        K = 0
        For AAA = 2 To 8
            Flag = False
            For CCC = 2 To 8
                If Cells(AAA, "A") = Cells(CCC, "C") Then
                    Flag = True
                    Exit For
                End If
            Next CCC
            If Flag = False Then
                K = K + 1
                Cells(K + 1, "E") = Cells(AAA, "A")
                Cells(K + 1, "F") = Cells(AAA, "B")
            End If
        Next AAA
          
    End Sub
      

  5.   

    非常谢谢!可以用!
    可能是我没有表述清楚,我的“D”列没列出数据,实际是C,D或更多列数据只要任一列数据满足前面对应列数据就在显示区域显示该完整数据,我把你给我的代码加了个循环结果“K”值怎么都不对,不是覆盖就是有空行(每列数据可能都有几百)帮忙帮忙Sub foreach()
          Dim AAA, CCC, K
          K = 0
          For AAA = 2 To 8
              For CCC = 2 To 8
                 If Cells(AAA, "A") = Cells(CCC, "C") Then
                 'If Cells(AAA, "A") = Cells(CCC, "C") Then
                    K = K + 1
                    Cells(K + 1, "E") = Cells(AAA, "A")
                    Cells(K + 1, "F") = Cells(AAA, "B")
                    Exit For
                  End If
              Next CCC
          Next AAA
    End Sub