以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 再求大神帮忙看一个循环语句错误,在线求解答 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115159) |
-- 作者:jq_shang -- 发布时间:2018/3/1 23:36:00 -- 再求大神帮忙看一个循环语句错误,在线求解答 Dim i As Integer = 0 \'With Tables("员工表") With Tables("学员表") For Each rrrr As Row In .Rows \'当前加载已筛选过的员工表中,每一行都去核对 Dim mmmm As String = .current("培训号") If xyjh.Contains(mmmm) = True Then \'找出员工表中已经加入学员表的学员,下一句remove掉 .current.Remove i = i + 1 End If Next End With Output.show(i) 问题出现在最后这个循环语句中,没有将符合条件的所有行移除,而是跳行移除。每次只移除1、3、5、7、9…… |
-- 作者:jq_shang -- 发布时间:2018/3/2 0:02:00 -- Dim i As Integer \'For Each r As Row In Tables("员工表").Rows For Each r As Row In Tables("学员表").Rows Dim pxh As String = r("培训号") With Tables("学员表") Dim rn As Integer rn = .Find(pxh, 0,"培训号", True, True, True) If rn > - 1 Then \'如果找到符合条件的行 \'.Position = r \'则选择该行 r.Remove \'在加载的员工表中移除该行,防止再次重复选择 \'r.Checked = False \'取消员工表中对该行的选择 End If End With i = i + 1 Next Output.show(i) 语句改成上面样子,效果一样,还是跳行移除。
|
-- 作者:有点甜 -- 发布时间:2018/3/2 1:06:00 -- 参考
http://www.foxtable.com/webhelp/scr/1478.htm
http://www.foxtable.com/webhelp/scr/2712.htm
或者参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=114307&skin=0
|
-- 作者:jq_shang -- 发布时间:2018/3/2 1:10:00 -- 先谢谢再看! |
-- 作者:jq_shang -- 发布时间:2018/3/2 1:17:00 -- 我的本意是,重复的选项提前移除,根本就不写入新表中,结果出现了隔行筛选的问题,怎么都找不到错在哪里了。 |
-- 作者:jq_shang -- 发布时间:2018/3/2 1:24:00 -- 出现三个问题: 1、我的本意是,重复的选项提前移除,根本就不写入新表中,结果出现了隔行筛选的问题,怎么都找不到错在哪里了。 2、移除命令,如果不加入括号,就变成删除啦! 3、移除的行,用命令不能重新加载,需要重新打开项目才能加载; |
-- 作者:jq_shang -- 发布时间:2018/3/2 1:56:00 -- Dim mmmm As String Dim i As Integer 问题已找到,先逐个选择,再一起删除就可以了,道理能够自己想明白。 With Tables("员工表") For Each rrrr As Row In .Rows \'当前加载已筛选过的员工表中,每一行都去核对 mmmm = .current("培训号") If xyjh.Contains(mmmm) = True Then \'找出员工表中已经加入学员表的学员,下一句remove掉 .current.Checked = True i = i + 1 End If Next End With For Each gtr As Row In Tables("员工表").GetCheckedRows gtr.Remove() Next
|
-- 作者:jq_shang -- 发布时间:2018/3/2 2:17:00 -- 后三句应该改成: Dim gtr As List(of Row) = Tables("员工表").GetCheckedRows For Each rrr As Row In gtr rrr.Remove() Next |
-- 作者:jq_shang -- 发布时间:2018/3/2 2:35:00 -- 不行呀,测试被屏蔽的还是第一人。难道要再次加入数组、集合后,再逐一屏蔽吗? |
-- 作者:有点甜 -- 发布时间:2018/3/2 8:57:00 -- 以下是引用jq_shang在2018/3/2 2:35:00的发言:
不行呀,测试被屏蔽的还是第一人。难道要再次加入数组、集合后,再逐一屏蔽吗?
这个意思?
For Each rrrr As Row In .Rows \'当前加载已筛选过的员工表中,每一行都去核对
mmmm = rrrr("培训号")
没看懂你要做什么,实现什么。请上传具体实例,说明你要做的东西。 [此贴子已经被作者于2018/3/2 8:59:08编辑过]
|