以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]求大师写段代码:根据另一表格内容批量替换 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95391) |
||||
-- 作者:jyh7081 -- 发布时间:2017/1/18 12:49:00 -- [求助]求大师写段代码:根据另一表格内容批量替换 1、“数据表”以“替换编辑”表的内容进行替换; 2、“替换编辑”表中[替换前内容]是当前编号(或行)需要替换的内容,每一行代表一项替换内容,多个编号相同的行,表示该编号存在多个要替换的内容; 附件:
谢谢大师!
|
||||
-- 作者:有点色 -- 发布时间:2017/1/18 14:36:00 -- Dim dt1 As DataTable = DataTables("数据表") Dim dt2 As DataTable = DataTables("替换编辑") For Each dr As DataRow In dt2.Select("") For Each fdr As DataRow In dt1.Select("编号 = \'" & dr("编号") & "\'") For Each dc As DataCol In dt1.DataCols If dc.IsString Then fdr(dc.name) = System.Text.RegularExpressions.Regex.replace(fdr(dc.name), dr("替换前内容"), dr("替换后内容")) End If Next Next Next |
||||
-- 作者:jyh7081 -- 发布时间:2017/1/18 16:13:00 -- 谢谢大师!很好用。 我想增加一项标记功能,就是把替换过的单元格显示为红色,但在运行中,只把最后一行替换的记录进行了标记,怎样把点击按钮后,所有被替换的单元格都进行标记?
|
||||
-- 作者:有点色 -- 发布时间:2017/1/18 16:39:00 --
|
||||
-- 作者:jyh7081 -- 发布时间:2017/1/18 18:18:00 -- 谢谢大师!很好用,但有些代码还没看懂,需要继续研究。 另外,当了解替换情况后,想再加个取消标记颜色的按钮,怎么弄?
[此贴子已经被作者于2017/1/18 18:23:16编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/1/18 18:29:00 -- 颜色的标记,是用【标识】列控制的。你需要把标志列的那个字符改成和你当前行的数据相同的字符即可。 |
||||
-- 作者:jyh7081 -- 发布时间:2017/1/18 18:39:00 -- 谢谢!我试试看。 另外,当增加行或克隆行时,提示错误,如下: 错误所在事件:表,数据表,DataColChanged 详细错误信息: 调用的目标发生了异常。 索引超出了数组界限。 或 错误所在事件:表,数据表,drawcell 详细错误信息: 调用的目标发生了异常。 索引超出了数组界限。 |
||||
-- 作者:有点色 -- 发布时间:2017/1/18 19:34:00 -- If e.Col.name <> "标记" Then
----------------------
If e.DataCol.name <> "标记" Then |
||||
-- 作者:jyh7081 -- 发布时间:2017/1/18 19:36:00 -- 老师太高了! [此贴子已经被作者于2017/1/18 19:58:24编辑过]
|
||||
-- 作者:jyh7081 -- 发布时间:2017/1/18 19:53:00 -- 谢谢!感觉问题都解决了。 取消标记,我是点击一下、有时点几下“重置列”按钮,不知道对不对,有没有直接的代码? 另外,我把其中一列改为日期列或逻辑列时,又出现了上述错误提示。
[此贴子已经被作者于2017/1/18 21:27:33编辑过]
|