设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1894|回复: 2
打印 上一主题 下一主题

[求助]帮帮我检查这段代码,先磕三个响头

[复制链接]
跳转到指定楼层
1#
发表于 2006-6-29 19:09:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
大侠呀,下面这段代码气死我了[em06]。如果在指定的范围内有某个单元格的内容和TextBox1.Text 相同就可以完成将找到的内容整行导入窗体相应文本框中,但是[em06],在指定的范围内没有内容和TextBox1.Text 相同,程序就出现问题了,自动中断,弹出调试对话框,说“对象变量或With块变量未设置”,按“调试”按钮以下代码变黄色

RANGE1.Find(What:=Instring1, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, _
        MatchByte:=False, SearchFormat:=False).Activate

我都快疯了,不知出了什么问题

以下是“查询”按钮的全部代码

Private Sub CommandButton7_Click()
'如果学生姓名文本框不可用或为空时,就不能查找直接退出
If TextBox1.Enabled = False Or TextBox1 = "" Then
Exit Sub
End If

Instring1 = TextBox1.Text '*****************(TextBox1.Text )为学生姓名文本框
'********声明变量
Dim RANGE1 As Range
'********设置范围
Set RANGE1 = Range("A7:K33")
'********进行搜索的操作
RANGE1.Find(What:=Instring1, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, _
        MatchByte:=False, SearchFormat:=False).Activate

'********将查到的内容导入窗体相应文本框中

ActiveCell.Select
Selection.End(xlToLeft).Select
TextBox6.Text = ActiveCell.Offset(0, 0).Range("A1") '学生姓名
TextBox7.Text = ActiveCell.Offset(0, 0).Range("B1") '班级
TextBox8.Text = ActiveCell.Offset(0, 0).Range("C1") '性别
TextBox9.Text = ActiveCell.Offset(0, 0).Range("H1") '联系电话
TextBox10.Text = ActiveCell.Offset(0, 0).Range("J1") '早餐
TextBox11.Text = ActiveCell.Offset(0, 0).Range("K1") '备注
TextBox12.Text = ActiveCell.Offset(0, 0).Range("D1") '地址1
TextBox13.Text = ActiveCell.Offset(0, 0).Range("E1") '地址2
TextBox14.Text = ActiveCell.Offset(0, 0).Range("F1") '地址3
TextBox15.Text = ActiveCell.Offset(0, 0).Range("G1") '补充地址
TextBox16.Text = ActiveCell.Offset(0, 0).Range("I1") '乘车号
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
3#
 楼主| 发表于 2006-7-1 01:15:00 | 只看该作者
谢谢Threaten,我弄明白了问题出现在

RANGE1.Find(What:=Instring1, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, _
        MatchByte:=False, SearchFormat:=False).Activate

上面的代码是执行.Find,如能找到,则设置它为.Activate,但是没有找到代码还是愚蠢地执行并强硬设置.Activate,没有找到任何单元格怎么会有.Activate。这就是出错了原因。我已通过其它办法解决了这个问题。

再次感谢热心的Threaten
2#
发表于 2006-6-30 08:01:00 | 只看该作者
程序一开始使用

On error resume next

就可以避免出错

或者,

On error goto X

此处为你的代码

exit sub

X:

Msgbox "Can not find it"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-1 19:20 , Processed in 0.081009 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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