我正在尝试比较一列中每对细胞的值。如果它们不同,我想用它做点什么。
如果我在'If'语句中使用关键字'Stop'运行一个宏并单击F5几次就可以了,但是当我从代码中删除“Stop”时,我得到了完全不同的结果。在第二个版本中立即窗口不打印某些单元格的任何值,可能会导致问题。任何想法为什么?
按要求编辑:(代码前的一些额外行)
Dim LastRow As Long
Dim Element As Excel.Range
Worksheets("Dane").Activate
LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Application.Calculation = xlCalculationManual
Application.Calculate
Edit2:复制操作
Range("F" & Element.Row).Copy Destination:=Worksheets("histogram").Range("C1048576").End(xlUp).Offset(1, 0)
Range("F" & Element.Row + 1).Copy Destination:=Worksheets("histogram").Range("B1048576").End(xlUp).Offset(1, 0)
Range("Y" & Element.Row + 1).Copy
Worksheets("histogram").Range("D1048576").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
1块代码:
Worksheets("Dane").Activate
For Each Element In Worksheets("Dane").Range("Y2:Y" & LastRow)
If Range("Y" & Element.Row + 1).Value <> Element.Value Then
Debug.Print Range("Y" & Element.Row + 1).Address, Range("Y" & Element.Row + 1).Value, "!=", Element.Value, Element.Address
Stop '<-- the only difference
'some code that copy some cells
End If
Next
1立即窗口(正确答案):
$Y$21 True != False $Y$20
$Y$86 False != True $Y$85
(...)
$Y$1835 True != False $Y$1834
$Y$3198 False != True $Y$3197
2秒版本(没有Stop语句):
Worksheets("Dane").Activate
For Each Element In Worksheets("Dane").Range("Y2:Y" & LastRow)
If Range("Y" & Element.Row + 1).Value <> Element.Value Then
Debug.Print Range("Y" & Element.Row + 1).Address, Range("Y" & Element.Row + 1).Value, "!=", Element.Value, Element.Address
'some code that copy some cells
End If
Next
2立即窗口(错误答案):
(...)
$Y$3194 != True $Y$3193
$Y$3195 != True $Y$3194
$Y$3196 != True $Y$3195
$Y$3197 != True $Y$3196
$Y$3198 != True $Y$3197