excel中如何用VBA查找值并返回另一列对应的值

如图,在工作表sheet1的I列是考室,J列是考室位置,如何用VBA查找到4考室并返回对应4考室的位置,并填入工作表sheet2的B3单元格中,激活的是工作表sheet2.

代码如下:
Sub Macro1()
Dim i%
For i = 1 To 2000
If Sheets(1).Cells(i, "I") = 4 Then Sheets(2).Cells(3, "B") = Sheets(1).Cells(i, "J"): Exit For
Next i
Sheets(2).Select
End Sub追问

For m = 4 To 2000
If Sheets(5).Cells(m, "I") = ks Then Sheets(8).Cells(yprs + startrow, "J") = Sheets(5).Cells(m, "J"): Exit For
Next m
因为有些是变量,我改成这样了,但sheet8的J列中不出东西,帮我看下问题所在,谢谢

追答

可能是ks的值不正确。
把msgbox ks写入程序。
如何运行宏,看看ks的值是否多少。

追问

msgbox (m)会显示2001,msgbox (ks)等其它显示都正常,比如msgbox (ks)显示为4代表4考室,则应该是m=7就应该找到了,然后退出for循环吧,但最后msgbox (m) 会显示2001,也就是没退出来,或者说If Sheets(5).Cells(m, "I") = ks这句一直不成立,单元格格式我也改了,就是不行,ks是肯定没问题的,因为我已在sheet8的I列将ks列出来了

追答

For m=4 to 2000 改成 For m=4 to 2000.
再加一段代码,计算"I"列的行数。
dim Hang as double
For m=30000 to 1 step -1
if Sheets(5).Cells(m, "I") "" then Hang=m:exit for
next m

然后把For m=4 to 2000改成For m=4 to Hang

温馨提示:答案为网友推荐,仅供参考
相似回答