【发布时间】:2018-10-29 13:46:40
【问题描述】:
我正在尝试使以下宏工作,但它一直将每个值都返回为“已到达”。
Sub CompareSheets()
Dim cell As Range
Dim found As Range
For Each cell In Sheets("Current").Range("D3:D500")
Set found = Sheets("Update").Range("D2:D500").Find(cell, LookAt:=xlWhole)
For Each found In Sheets("Update").Range("D2:D500")
If Not cell Like found Then cell.Offset(0, 8) = "Arrived"
Next found
Next cell
End Sub
【问题讨论】:
-
在
Like比较中可能需要一些通配符。查看所有通配符比较运算符:support.office.com/en-us/article/… -
我想我们需要查看
cell和found中的值的一些示例。一些正确的例子和一些不正确的例子 -
感谢您的快速响应,我试图找出两个不同工作表上两列之间的差异。如果未找到匹配项,则 k (0,8) 列中的值应为“已到达”
-
为什么不使用 VLOOKUP? support.office.com/en-us/article/…
-
按照下面的@vityata'a 答案,您可能会发现在
If Not cell Like found Then cell.Offset(0, 8) = "Arrived"行的代码中添加breakpoint很有用,这样可以查看不同的值变量。在调试代码时,通常更容易查看特定情况下的特定行为,在这种情况下您知道答案应该是什么,而不是试图在脑海中“一次解决所有问题”