【问题标题】:Comparing cells with similar/different values比较具有相似/不同值的单元格
【发布时间】:2013-10-03 02:26:04
【问题描述】:

我在比较具有不同值的单元格时遇到问题,但如果比较的值相同,它就可以工作。我面临的问题是比较工作表1中的单元格A1:A100和工作表2中的单元格B3:B1000。如果工作表1和工作表2中的值相等,它将被粘贴到工作表3中的单元格A,我可以做到。如果值不相等,它将被粘贴到工作表 3 中的单元格 B 这是我面临的问题。这是我的代码。

私有子命令按钮1_Click()

将 val1、val2 调暗为字符串

对于 i = 1 到 100

val1 = Worksheets("Sheet1").Cells(i, 1)

 For j = 3 To 1000
 val2 = Worksheets("Sheet2").Cells(j, 2)

  If (val1 = val2) Then
   Worksheets("Sheet3").Cells(i, 1) = val2

  ElseIf (val1 <> val2) Then
   Worksheets("Sheet3").Cells(i, 2) = val2

  End If

  Next

下一个

结束子

【问题讨论】:

  • 你为什么有一个嵌套的for循环?
  • 嵌套for循环用于定义i=1到100的单元格示例为(A1:A100)
  • 您的代码中实际发生的情况是,它不断将工作表 2 的 B 列与单元格 (1,1)、单元格 (2,1)...与单元格 (100,1) 进行比较表 1
  • 当找到来自工作表 1 和 2 的相似值时,将其粘贴到工作表 3 单元格 A。但如果来自工作表 1 和 2 的值不相同,我将从工作表 2 中获取不同于表 1 并将其粘贴到表 3 单元格 B。此代码不会跟踪不相等的值。相反,它将表 2 中的最后一个值粘贴到从 B1:B100 开始的 B 列表 3 中的表 3。相同的值只适用于不同的值。
  • 您有什么建议可以改进我的代码,以便将表 2 中不同于表 1 的值粘贴到表 3 单元格 B 中吗?

标签: vba compare


【解决方案1】:

您实际上的意思是......"对于工作表 2 中 B 列中的每个值,如果在 范围内 A1:A100"...

终于找到你了。看看这是否有帮助。

Sub test()
    Dim val As Variant
    Dim found As Integer, notFound As Integer

    found = 0
    notFound = 0

    For j = 3 To 1000
        val = Worksheets("Sheet2").Cells(j, 2).Value
        If Not IsError(Application.Match(val, Worksheets("Sheet1").Range("A1:A100"), 0)) Then
            'Comment this line if you don't want to paste the values that are the same
            'Worksheets("Sheet3").Range("A1").Offset(found) = val
            found = found + 1
        Else
            Worksheets("Sheet3").Range("B1").Offset(notFound) = val
            notFound = notFound + 1
        End If
    Next
End Sub

【讨论】:

  • 示例表 1 的值按顺序为 1 到 100,表 2 从第 3 行开始的值为 22,3,101,489,6,7... 等。值如 22,3,6 和 7被粘贴到我能够的表 3 单元格 A 上。但是像 101,489...等与表 1 不同的值被粘贴到表 3 单元格 B。
  • 是的,而不是 998,我希望所有与表 1 不同的值都粘贴在表 3 的单元格 B 中
  • 它工作得很好,但我可以让它只寻找不一样的价值吗?
  • 您的意思是忽略相同的值并且不将它们粘贴到工作表 3?
  • 是的,只需从工作表 2 中复制与工作表 1 不同的值并将其粘贴到工作表 3。
猜你喜欢
  • 2016-04-07
  • 1970-01-01
  • 2016-12-09
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 2011-12-27
  • 1970-01-01
相关资源
最近更新 更多