zoukankan      html  css  js  c++  java
  • VBA,两个sheet根据第一列id相同比较其余列,不同的值放到sheet3中

    Application.ScreenUpdating = False
      Dim rg As Range
      Dim rg2 As Range
      Dim rg3 As Range

      Dim counter As Double
      Dim i As Long
      Dim j As Long
      Dim k As Long
      Dim r1, r2, c1, c2 As Integer
     
       r1 = Sheets(1).Range("A65536").End(xlUp).Row
       r2 = Sheets(2).Range("A65536").End(xlUp).Row
       c1 = Sheets(1).[IV1].End(xlToLeft).Column
       c2 = Sheets(2).[IV1].End(xlToLeft).Column
       j = 1
       i = 1
       k = 1
       Sheets(3).Cells.ClearContents
      Sheets(1).Range("A1:L1").Copy Sheets(3).Range("A1")
      
      For Each rg In Sheets(1).Range("A2" & ":A" & r1)
        i = i + 1 'sheet1行号
        j = 1
        For Each rg2 In Sheets(2).Range("A2" & ":A" & r2)
        j = j + 1 'sheet2行号
           If rg.Value = rg2.Value Then '如果id一样
             For k = 2 To c1 '从第二列开始循环
             'For Each rg3 In Sheets(1).Range("A" & i & ":A" & c1) '遍历这个列来确定哪个值
                'k = k + 1
                rg5 = Sheets(1).Cells(i, k) 'sheet1的i行和sheet2的j行逐一遍历比较
                rg4 = Sheets(2).Cells(j, k)
                If (rg5 <> rg4) Then '如果值不相同 Interior.ColorIndex = 3
                 Sheets(1).Cells(i, 1).Copy Sheets(3).Cells(i, 1)
                
                 Sheets(1).Cells(i, k).Copy Sheets(3).Cells(i, k)
                 Sheets(1).Cells(i, k).Interior.ColorIndex = 3
                End If
            ' Next
            Next
           End If
          
        Next
      Next
      Application.ScreenUpdating = True

  • 相关阅读:
    FCLK、HCLK、PCLK
    CPU位数、地址线位数、数据线位数、通用寄存器位数!
    Java实现线程的三种方式和区别
    数据结构之二叉树
    List&Map&Set的操作和遍历
    从源码看Java集合之ArrayList
    Java设计模式概述
    Java实现单例的5种方式
    Java序列化
    水仙花数
  • 原文地址:https://www.cnblogs.com/soief/p/2419288.html
Copyright © 2011-2022 走看看