以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]单元格编辑结束,自动跳转下一行指定列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120197)

--  作者:kzfasky
--  发布时间:2018/6/9 11:45:00
--  [求助]单元格编辑结束,自动跳转下一行指定列
    a   b   c   d   e
1
2
3


1行d列单元格编辑完成回车结束,
直接跳转到c列第二行

求老师给个葫芦,我画个瓢,帮助里搜半天解决不了
[此贴子已经被作者于2018/6/9 11:45:51编辑过]

--  作者:有点蓝
--  发布时间:2018/6/9 12:18:00
--  
表格keydown事件

If e.Table.Cols(e.Table.Colsel).name = "d" AndAlso e.keycode = keys.Enter AndAlso e.Table.rowsel < e.Table.Rows.count-1 Then
    e.cancel = True
    e.Table.Select(e.Table.rowsel+1,e.Table.Cols("c").Index)
End If

--  作者:kzfasky
--  发布时间:2018/6/9 13:02:00
--  
老师。。我画的这个瓢不
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试9.table

好使图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2018/6/9 14:12:00
--  
没有问题啊。还是1楼是另外一个意思?重新描述一下
--  作者:kzfasky
--  发布时间:2018/6/9 14:32:00
--  
可能我没表述太清楚
当在d列单元格输入完毕敲击回车键    光标自动跳到下一行c列的单元格
老师看看这回表述的可以么

--  作者:kzfasky
--  发布时间:2018/6/9 14:38:00
--  
刚又试了下您给的代码,您给的代码在不编辑d列的时候管用 直接回车就到下行
c列了,可是在d列编辑的时候回车不好使,回车完直接跳到e列了

--  作者:有点蓝
--  发布时间:2018/6/9 14:48:00
--  
代码复制一份到keydownedit事件
--  作者:kzfasky
--  发布时间:2018/6/10 11:56:00
--  
蓝老师,问题解决了,不过新问题又来了,一共做了3个跳转, 结果就直接跳到最后了,这个怎么解决,难道要3合一吗

If e.Table.Cols(e.Table.Colsel).name = "货物名称" AndAlso e.keycode = keys.enter AndAlso e.Table.rowsel < e.Table.Rows.count-1 Then
    e.cancel = True
    e.Table.Select(e.Table.rowsel,e.Table.Cols("重量").Index)
End If
If e.Table.Cols(e.Table.Colsel).name = "重量" AndAlso e.keycode = keys.enter AndAlso e.Table.rowsel < e.Table.Rows.count-1 Then
    e.cancel = True
    e.Table.Select(e.Table.rowsel,e.Table.Cols("车号").Index)
End If
If e.Table.Cols(e.Table.Colsel).name = "车号" AndAlso e.keycode = keys.enter AndAlso e.Table.rowsel < e.Table.Rows.count-1 Then
    e.cancel = True
    e.Table.Select(e.Table.rowsel+1,e.Table.Cols("公司名称").Index)
End If

--  作者:有点甜
--  发布时间:2018/6/10 22:35:00
--  

改成

 

If e.Table.Cols(e.Table.Colsel).name = "货物名称" AndAlso e.keycode = keys.enter AndAlso e.Table.rowsel < e.Table.Rows.count-1 Then
    e.cancel = True
    e.Table.Select(e.Table.rowsel,e.Table.Cols("重量").Index)
ElseIf e.Table.Cols(e.Table.Colsel).name = "重量" AndAlso e.keycode = keys.enter AndAlso e.Table.rowsel < e.Table.Rows.count-1 Then
    e.cancel = True
    e.Table.Select(e.Table.rowsel,e.Table.Cols("车号").Index)
ElseIf e.Table.Cols(e.Table.Colsel).name = "车号" AndAlso e.keycode = keys.enter AndAlso e.Table.rowsel < e.Table.Rows.count-1 Then
    e.cancel = True
    e.Table.Select(e.Table.rowsel+1,e.Table.Cols("公司名称").Index)
End If