Office中国论坛/Access中国论坛
标题:
[求助]帮帮我检查这段代码,先磕三个响头
[打印本页]
作者:
hangyi
时间:
2006-6-29 19:09
标题:
[求助]帮帮我检查这段代码,先磕三个响头
大侠呀,下面这段代码气死我了[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
作者:
Threaten
时间:
2006-6-30 08:01
程序一开始使用
On error resume next
就可以避免出错
或者,
On error goto X
此处为你的代码
exit sub
X:
Msgbox "Can not find it"
作者:
hangyi
时间:
2006-7-1 01:15
谢谢
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
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3