【发布时间】:2021-04-07 15:31:16
【问题描述】:
以下代码运行,但没有得到结果。信息在正确的范围内。
Dim ID As Range
Dim SN As Range
Dim i As Integer
Set ID = Sheet6.Range("B2:B8")
Set SN = Sheet2.Range("C7:C184")
For i = 2 To ID.Cells.count
If ID.Cells(i) = SN.Cells(i) Then
MsgBox "do something"
ID.Cells.Offset(0, 2).Value = SN.Cells.Offset(0, -2).Value
Else
MsgBox "sorry"
End If
Next
【问题讨论】:
-
单步执行,看看值是什么?不确定我们是否可以回答这个问题,因为我们不知道您正在获得什么结果或您正在寻找什么结果。
-
当我应该在步出 ID 单元格中得到 msgbox“做某事”时,我得到了 msgbox“抱歉”,给了我正确的值,而 SN 单元格给了我相同的值。
-
它们之间肯定有些不同,如果它们是日期,也许一个人也有时间。如果它们是数字,则格式可能会截断小数,如果它们是文本,则可能在之前或之后有空格等...
-
问题出在这里:'If ID.Cells(i) = SN.Cells(i) Then' 他们似乎在搜索相同的范围。
-
所以
ID.Cells(i)将是工作表 6 上的 B3 到 B8,SN.Cells(i)将是工作表 2 上的 C8 到 C13。不确定这是否是您要查找的内容。
标签: excel vba loops integer range