以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]能不能批量替换? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90417) |
||||
-- 作者:jyh7081 -- 发布时间:2016/9/12 12:30:00 -- [求助]能不能批量替换? 帮助里没找到相近代码,请版主帮忙!谢谢! [此贴子已经被作者于2016/9/12 14:26:26编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/9/12 14:07:00 -- 没看懂要做什么 |
||||
-- 作者:jyh7081 -- 发布时间:2016/9/12 14:29:00 -- 就是针对同一行中不同单元格内的多个字符串,进行的批量替换,我重新上传了图和附件。 |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/12 14:45:00 --
|
||||
-- 作者:jyh7081 -- 发布时间:2016/9/12 16:56:00 -- 版主,我的意思是窗口左侧的5个文本框都是需要替换的内容,而且都是来自同一行的不同字符串。窗口右边的5个文本框都是替换后的字符串。(窗口中间是向右的剪头,没显示出来) 步骤是:1、选中 行(替换范围); 2、弹出替换窗口; 3、在左侧文本框编辑需替换的字符串,右侧文本框编辑替换后的字符串; 4、点击替换按钮,一次性完成对该行的多处字符串的替换。
[此贴子已经被作者于2016/9/12 16:57:19编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/9/12 17:06:00 -- Dim dr As Row = Tables("表A").Current Dim cls() As String = {"第一列","第二列","第三列"} For Each c As String In cls dr(c) = dr(c).replace(e.Form.Controls("TextBox1").Text,e.Form.Controls("TextBox2").Text) dr(c) = dr(c).replace(e.Form.Controls("TextBox3").Text,e.Form.Controls("TextBox4").Text) Next
|
||||
-- 作者:jyh7081 -- 发布时间:2016/9/12 19:57:00 -- 谢谢版主!正是我要的效果。 我想把代码改为针对当前表,当前行的所有列,有一句代码不会写(斜体字),求帮助: Dim dr As Row = CurrentTable.Current \'定义dr为当前表当前行 For Each cls As Col In CurrentTable.Cols \'遍历当前表的所有列 Next For Each c As String In cls dr(c) = dr(c).replace(e.Form.Controls("TextBox1").Text,e.Form.Controls("TextBox2").Text) dr(c) = dr(c).replace(e.Form.Controls("TextBox3").Text,e.Form.Controls("TextBox4").Text) Next |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/12 20:24:00 -- For Each c As Col In CurrentTable.Cols \'遍历当前表的所有列 dr(c.name) = dr(c.name).replace(e.Form.Controls("TextBox1").Text,e.Form.Controls("TextBox2").Text) dr(c.name) = dr(c.name).replace(e.Form.Controls("TextBox3").Text,e.Form.Controls("TextBox4").Text) Next |
||||
-- 作者:jyh7081 -- 发布时间:2016/9/14 20:24:00 -- 蓝版主,您好。如果在窗口中的文本框只填写一部分,比如窗口中有五行可以替换的文本框,假如只填写一部分,部分空着不填,怎样让代码继续运行? 现在是如果窗口中的文本框不填满,就提示: “错误所在事件:窗口,批量替换,Button1,Click 详细错误信息: 字符串的长度不能为零。 参数名: oldValue” Dim dr As Row = CurrentTable.Current For Each c As Col In CurrentTable.Cols \'遍历当前表的所有列 dr(c.name) = dr(c.name).replace(e.Form.Controls("TextBox1").Text,e.Form.Controls("TextBox2").Text) dr(c.name) = dr(c.name).replace(e.Form.Controls("TextBox3").Text,e.Form.Controls("TextBox4").Text) dr(c.name) = dr(c.name).replace(e.Form.Controls("TextBox5").Text,e.Form.Controls("TextBox6").Text) dr(c.name) = dr(c.name).replace(e.Form.Controls("TextBox7").Text,e.Form.Controls("TextBox8").Text) dr(c.name) = dr(c.name).replace(e.Form.Controls("TextBox9").Text,e.Form.Controls("TextBox10").Text) Next
|
||||
-- 作者:有点蓝 -- 发布时间:2016/9/14 20:35:00 -- Dim dr As Row = CurrentTable.Current Dim t1 As String = e.Form.Controls("TextBox1").Text Dim t2 As String = e.Form.Controls("TextBox2").Text Dim t3 As ...... For Each c As Col In CurrentTable.Cols \'遍历当前表的所有列 Dim value As String = dr(c.name) If value > "" Then If t1 > "" Then value = value.replace(t1,t2) If t3 > "" Then value = value.replace(t3,t4) If t5 > "" ...... dr(c.name) = value End If Next 省略号自己补充完整
|