在excel里面执行下列代码为什么没有反应?

来源:百度知道 编辑:UC知道 时间:2024/08/22 05:44:40
有A B C D 四列数据

Sub TEST()
For i = 1 To 197
For j = 1 To 48
If Cells(i, 4) = Cells(j, 1) Then
Cells(i, 5) = Cells(j, 2)
Else
Next j
Next i
End Sub
Sub TEST()
For i = 1 To 197
For j = 1 To 48
If Cells(i, 4) = Cells(j, 1) Then
Cells(i, 5) = Cells(j, 2)
End If
Next j
Next i
End Sub

刚才打错了 是这些代码
为什么没有任何反应呢?

有反应呢,你改成下面的代码就看得见反映了(DoEvents放在循环中起到释放CPU资源的作用,避免假死情况出现):
Sub TEST()
For i = 1 To 197
DoEvents
For j = 1 To 48
DoEvents
If Cells(i, 4) = Cells(j, 1) Then Cells(i, 5) = Cells(j, 2)
Next j
Next i
End Sub

不过我感觉这段代码设计好像不太恰当似的?呵呵

代码有问题
ELSE处应该是END IF

对补充问题的回复:
该代码比较A,D列的数据。
如果在A列找到D列的值,将对应行的B列值复制到D列值对应行的E列。

BTW:我觉得这个完全没有必要,直接在E列使用vlookup函数即可。