Excel 如何比较行之间的值

Excel 如何比较行之间的值,excel,vba,Excel,Vba,我需要帮助。我有一个超过6K数据的电子表格。我需要使用VBA比较“移入数量”和“移出数量”之间的值。这里的问题是,我需要在代码列中的代码从“CV64”和“TW78”更改后立即比较该值。我用红色高亮显示的值和我用蓝色和黄色高亮显示的代码。我将感谢任何帮助。谢谢 在这里做一些假设: 搬进搬出总是数字 使用=,进程比较移动编号 需要根据结果采取未知的进一步行动 此外,它也有助于包括您尝试过的内容和不起作用的内容 请在你的问题中加入你试图使用的代码,并解释你遇到的问题。您只是在寻找这两个特定的代码(CV

我需要帮助。我有一个超过6K数据的电子表格。我需要使用VBA比较“移入数量”和“移出数量”之间的值。这里的问题是,我需要在代码列中的代码从“CV64”和“TW78”更改后立即比较该值。我用红色高亮显示的值和我用蓝色和黄色高亮显示的代码。我将感谢任何帮助。谢谢


在这里做一些假设:

  • 搬进搬出总是数字
  • 使用=,进程比较移动编号
  • 需要根据结果采取未知的进一步行动
  • 此外,它也有助于包括您尝试过的内容和不起作用的内容


    请在你的问题中加入你试图使用的代码,并解释你遇到的问题。您只是在寻找这两个特定的代码(CV64和TW78)还是代码的任何更改?整个过程是否在不同的产品ID上重复?Hi@braX事实上我已经尝试过编码,但我不知道如何使用解决方案,因为它非常复杂,我需要比较行与列之间的数据。这是我第一次遇到这种问题。您好@TomSharpe no。代码仅用于该产品id,其他产品id具有不同的代码。HMM最好的方法是将要计算的范围设置为一个变量,然后偏移该变量并计算一个不同的列,这样您就可以不用定义列了,但是因为我不知道真正的布局,所以我将列设置为硬编码。Hi Ricards,谢谢您的回答。但我这里的问题是,我想知道“移出数量”的值是否与“移入数量”的值相同,因为在代码从“CV64”更改为“TW78”后,应该是相同的。如果它们在“CV64”和“TW78”的“移入数量”之间有不同的值,我需要跟踪,实际上TW78是“CV64”的“移入数量”和“TW78”的“移出数量”之间的转折点。在实际的电子表格中,它有600多个产品ID。对于其他产品ID,代码也不同,但转折点就在代码更改之后,所以在我更改答案之前,我想检查一下我是否正确理解了它。当代码切换到TW78时,MOVE_OUT应该与CV64 MOVE_IN correct匹配?Hi Ricards,它工作正常,但是我可以知道如何检测显示不同值的行吗?Bcs我收到了“他们是不同的”消息,但我不知道那是哪一行。我更新到消息行编号,并突出显示红色,您可以使用“如果不想看到它,也要标记答案完成,如果这对您有效。更新以查看代码,并在代码更改时验证。”。
    Sub ReviewData()
    
    Dim wkbk As Workbook
    Dim xsheet As Worksheet
    Dim codeColumn As String, moveIN As String, moveOUT As String
    Dim rowCount As Double
    
    Set wkbk = ThisWorkbook
    Set xsheet = wkbk.Worksheets("Sheet1") 'change sheet name here
    codeColumn = "B" ' change column letter here
    moveIN = "C" 'set move in column
    moveOUT = "D" 'set move out column
    
    'this will loop through the Code column until the last set of data.
    rowCount = xsheet.Range(codeColumn & xsheet.Rows.Count).End(xlUp).Row 'find last row
    
    For x = 2 To rowCount
        'checks if code transitions from one code to another
        If not xsheet.Range(codeColumn & x).Value = xsheet.Range(codeColumn & x + 1).Value Then
    
            If xsheet.Range(moveIN & x).Value = xsheet.Range(moveOUT & x + 1).Value Then
                'do something if the code is the same
            Else
                xsheet.Range(codeColumn & x).Interior.ColorIndex = 3
                MsgBox ("Row: " & x & " is different") 'comment this out not to get the message
            End If
        Else
        End If
    
    Next x
    End Sub