Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1776|回复: 5

[已解决]不理解代码意思?请帮忙解释!

[复制链接]
发表于 2010-1-27 16:21 | 显示全部楼层 |阅读模式
Dim mrow1 As Long
On Error GoTo errhandle
mrow1 = Range("A:A").Find(TextBox1.Value).Row
TextBox2.Value = Range("B" & mrow1)
TextBox3.Value = Range("C" & mrow1)
errhandle:
If Err.Number = 91 Then
    MsgBox "没有找到"
    TextBox1.Value = ""
End If
最佳答案
2010-1-27 16:39

其实代码可以不这样来写

可以这样写

Dim mrow1 As Long
dim rng as range

set rng =Range("A:A").Find(TextBox1.Value)

if not rng is nothing then
mrow1 = rng.row

TextBox2.Value = Range("B" & mrow1)
TextBox3.Value = Range("C" & mrow1)
else

 MsgBox "没有找到"
    TextBox1.Value = ""

End If

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2010-1-27 16:28 | 显示全部楼层

出现错误,就转跳到errhandle

如果错误代码为91就弹出"没有找到"对话框

回复

使用道具 举报

发表于 2010-1-27 16:39 | 显示全部楼层    本楼为最佳答案   

其实代码可以不这样来写

可以这样写

Dim mrow1 As Long
dim rng as range

set rng =Range("A:A").Find(TextBox1.Value)

if not rng is nothing then
mrow1 = rng.row

TextBox2.Value = Range("B" & mrow1)
TextBox3.Value = Range("C" & mrow1)
else

 MsgBox "没有找到"
    TextBox1.Value = ""

End If

回复

使用道具 举报

发表于 2010-1-27 17:56 | 显示全部楼层

QUOTE:
以下是引用搁浅2008在2010-1-27 16:39:00的发言:

其实代码可以不这样来写

可以这样写

Dim mrow1 As Long
dim rng as range

set rng =Range("A:A").Find(TextBox1.Value)

if not rng is nothing then
mrow1 = rng.row

TextBox2.Value = Range("B" & mrow1)
TextBox3.Value = Range("C" & mrow1)
else

 MsgBox "没有找到"
    TextBox1.Value = ""

End If

这样写比较好,比楼主写的遇到错误就转跳来得好多了

回复

使用道具 举报

 楼主| 发表于 2010-1-27 18:56 | 显示全部楼层

谢谢!搁浅学委。[em23]
回复

使用道具 举报

发表于 2010-1-28 00:12 | 显示全部楼层

 一般都这么用

on error resume next

......

if err<>0 then

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-14 12:53 , Processed in 0.284545 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表