以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何筛选出刚修改过的单元格 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78125) |
-- 作者:zhangchi96 -- 发布时间:2015/12/2 16:41:00 -- 如何筛选出刚修改过的单元格 说明书内容:修改订单数据后,按下菜单中的标记按钮,即可以红底白字标出所有已经修改过的单元格: 已知某个表的列 有 : 客户 单价 折扣 每一列中 都有记录发生了修改 1、筛选出 客户列中有变化的记录 2、筛选出无论哪列有变化及作为有变化的记录 我想,既然系统能测出哪些个单元格是刚被修改ud,就一定能筛选出来。请教 如何书写代码 [此贴子已经被作者于2015/12/2 16:45:02编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/12/2 16:45:00 -- MarkModifedCell = true Tables("表A").Refresh |
-- 作者:zhangchi96 -- 发布时间:2015/12/2 16:48:00 -- 我要分两种,一种是针对某一列中有变化的,二是针对所有列 有变化 的,帮助文档中找不到 这个代码的用法,请问怎么写? |
-- 作者:大红袍 -- 发布时间:2015/12/2 16:53:00 -- drawcell事件
If e.Col.name = "第二列" Then |
-- 作者:zhangchi96 -- 发布时间:2015/12/2 17:05:00 -- 大红袍老师,可能我表达的意思错了,我要的是筛选,不是标志颜色 就是类似下面这个表达式中的条件,如何针对已经 修改过内容的做个筛选: Tables("职工表").Filter= " \'" \'筛选显示 一种是 筛选出 客户 列有变化的记录 二种是筛选出 客户 单价 折扣 列中至少一个列变化的记录
[此贴子已经被作者于2015/12/2 17:08:06编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/12/2 17:11:00 -- 参考
Dim idx As String = "-1," Tables("表A").Filter = "_Identify in (" & idx.trim(",") & ")" |
-- 作者:zhangchi96 -- 发布时间:2015/12/2 22:42:00 -- 上面是能筛选出[第二列]中有数据变动的记录 如果要筛选所有列有数据变动的记录,我用了下列代码: Dim idx As String = "-1," For Each dr As DataRow In DataTables("职工表").datarows For Each dc As DataCol In DataTables("职工表").DataCols If dr(dc.Name) <> dr.OriginalValue(dc.Name) Then idx &= dr("_Identify") & "," End If Next Next Tables("职工表").Filter = "_Identify in (" & idx.trim(",") & ")" 请教大红袍老师,这样对不对呢?
|
-- 作者:大红袍 -- 发布时间:2015/12/2 22:45:00 -- Dim idx As String = "-1," Tables("表A").Filter = "_Identify in (" & idx.trim(",") & ")" |
-- 作者:zhangchi96 -- 发布时间:2015/12/2 23:52:00 -- Exit For 表示不再遍列该行中后面其他的列了,是不是? [此贴子已经被作者于2015/12/2 23:58:14编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/12/3 0:05:00 -- 是的,一行,只要有一列修改了,其余的就没必要继续循环。 |