急求高手指点,VB编辑中出现错误,如何在过程中和给定的条件做整体比较,,,谢谢

Private Sub Worksheet_Change(ByVal Target As Range)
'MsgBox
If Target.Address = "$A$1" Then
vl = Cells(Target.Row, Target.Column)
xr = Target.Row: xc = Target.Column
If Len(vl) = 0 Then Exit Sub ''空值退出
On Error Resume Next
x = ActiveSheet.Name
'MsgBox x
For Each Sh In ThisWorkbook.Sheets
If Sh.Name = x Then GoTo a_next
y = Sh.Name
'MsgBox y
Set sj = Worksheets(y)
ed = sj.[A65536].End(xlUp).Row
'MsgBox (ed)
Set rg = sj.Range("A1:A" & ed).Find(vl, LookIn:=xlValues)
'MsgBox (rg)
If rg Is Nothing Then GoTo a_next 'MsgBox y & "没找到!":
Target.Select
'MsgBox rg.Row & rg.Column
Worksheets(x).Cells(xr, xc + 1) = Worksheets(y).Cells(rg.Row, rg.Column + 1)
Set sj = Nothing
Exit For
a_next: Set sj = Nothing
Next
End If
End Sub
这是查找并引用的语法,就是有几张工作表,在第一个表的a1单元格中输入输入编号,可根据该编号在多个表中找到该编号,并能把该编号所在行的第2列的数据显示出来(第1个表的B1格中)的程序,问题是,现有表中的编号不是按顺序排列的(编号有1位数的——9位数的。排序比较乱)。假如前十行都是6,7位数的编号,十一行的编号是3的话。输入 3 查找,结果显示的不是第十一行 3 所对应的数据,而显示的是前十行个位(比如1013,不管是几位数只要最后一位是3)第一个满足 3 的行的数据,而我要的是第十一行的数据,出现这样的错误该咋解决,,谢谢,,具体语法是。。。

第1个回答  2012-06-02
Private Sub Worksheet_Change(ByVal Target As Range)
'MsgBox
If Target.Address = "$A$1" Then
vl = Cells(Target.Row, Target.Column)
xr = Target.Row: xc = Target.Column
If Len(vl) = 0 Then Exit Sub ''空值退出
On Error Resume Next
x = ActiveSheet.Name
'MsgBox x
For Each Sh In ThisWorkbook.Sheets
If Sh.Name = x Then GoTo a_next
y = Sh.Name
'MsgBox y
Set sj = Worksheets(y)
ed = sj.[A65536].End(xlUp).Row

For i = 1 To ed

If sj.Cells(i, 1).Value = vl Then

Worksheets(x).Cells(xr, xc + 1) = sj.Cells(i, 2).Value
Exit For
End If

Next

a_next: Set sj = Nothing
Next
End If
End Sub追问

谢谢,非常感谢,如果找不到或是没有要查找的编号,要显示一个提示框,,,该咋样做,,要加啥语句。。。。谢谢

追答

我回复了,怎么看不到啊

第2个回答  2012-06-05
挺复杂

急求高手指点,VB编辑中出现错误,如何在过程中和给定的条件做整体比较...
Private Sub Worksheet_Change(ByVal Target As Range)'MsgBox If Target.Address = "$A$1" Then vl = Cells(Target.Row, Target.Column)xr = Target.Row: xc = Target.Column If Len(vl) = 0 Then Exit Sub ''空值退出 On Error Resume Next x = ActiveSheet.Name 'MsgBox x For Each ...

急求高手指点,excel中,VB编辑出现错误,望高手看看是不是语法有错误,如...
IF colItems="00;d8;d5;39;c5;c2"The 应该是 IF colItems="00:d8:d5:39:c5:c2"Then 间隔是冒号而不是分号 还有是Else,不是Eles

请VB高手帮忙解决一下问题,要具体一点的分析过程哦,谢谢了! 阅读下列...
按鼠标左键 Button =1 按鼠标右键 Button =2 同时按下鼠标左右键 Button =3 当你不按鼠标并且鼠标在窗体上移动的时候,事件中参数Button的值是0 当你按住鼠标的左键并且鼠标在窗体上移动的时候,事件中参数Button的值是1 当你按住鼠标的右键并且鼠标在窗体上移动的时候,事件中参数Button的...

急求高手指点用VB在excel编辑中出现 编译错误,For没有Next 是咋回事...
Else ThisWorkbooks.Open.Filename End If next '在这加上next 就行了

vb中如何把查询到的数据显示在msflexgrid上呢 请高手来围观解答啊_百度...
1、添加 MSFlexGrid 控件:“工程”->"部件"->"选择 Microsoft FlexGrid Control 6.0"->"确定"2、Data 控件应该会设置吧 3、窗体上放置该控件,设置其 DataSource 属性=Data1 3、添加需要的程序 4、程序中的 "F1" 是我用字段名称,代表的是“错误编号”5、查询中用 Like 语句可以获得相关的...

...在另外窗口中进行计算(加减乘除),求高手指点,谢谢
你可以设一个全局变量。或 用val(from1.text1.text),将字符串转化成数字格式。

怎么在考试中做到细心?会做题目要全做对?求高手指点。
。其他的题用这种方法可能会出现数太大不好算等容易造成马虎的情况。。5:考试前一定要做到心平气和,不要出现过大的情绪波动。。在考试的时候。。尽量不要去想诸如考不好会怎样的事情。。如果还有什么不懂。。可以继续提问。。或者私信。。如果没有。。求采纳。。谢谢。。

VB数据表中,老提示:缺少,表达式,如下,求高手指点?
VB换行需要添加空格和下划线,建议写在一行上,也就是:ZF = Data2.Recordset.Fields("微机原理") + Data2.Recordset.Fields ("office") + Data2.Recordset.Fields ("五笔字型打字") + Data2.Recordset.Fields ("VB")

在计算机编程中 true和false如何使用才是正确的呢 请高手讲解一下
1 IF[NOT]ERRORLEVELnumbercommand 1 IF[NOT]string1==string2command 1 IF[NOT]EXISTfilenamecommand NOT 指定只有条件为 false 的情况下,Windows XP 才应该执行该命令。ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为 true。string1==string2 如果指定的文字...

...还有怎么样洗C盘的文件。麻烦高手指点,谢谢
所以给我们的表现就是主机自动重启。 ②电源直流输出不纯,数字电路要求纯直流供电,当电源的直流输出中谐波含量过大,就会导致数字电路工作出错,表现是经常性的死机或重启。 ③CPU的工作负载是动态的,对电流的要求也是动态的,而且要求动态反应速度迅速。有些品质差的电源动态反应时间长,...

相似回答
大家正在搜