Foxtable(狐表)用户栏目专家坐堂 → [求助]能不能批量替换?


  共有2682人关注过本帖树形打印复制链接

主题:[求助]能不能批量替换?

帅哥哟,离线,有人找我吗?
jyh7081
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:960 积分:8466 威望:0 精华:0 注册:2012/10/3 13:25:00
[求助]能不能批量替换?  发帖心情 Post By:2016/9/12 12:30:00 [只看该作者]

帮助里没找到相近代码,请版主帮忙!谢谢!

选中当前行,对当前行中的多处字符串进行批量替换,应该是匹配内容方式吧。


图片点击可在新窗口打开查看此主题相关图片如下:图像 2.jpg
图片点击可在新窗口打开查看


附件:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:批量替换.table






[此贴子已经被作者于2016/9/12 14:26:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109406 积分:556686 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/12 14:07:00 [只看该作者]

没看懂要做什么

 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:960 积分:8466 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/9/12 14:29:00 [只看该作者]

就是针对同一行中不同单元格内的多个字符串,进行的批量替换,我重新上传了图和附件。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109406 积分:556686 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/12 14:45:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:批量替换(1).table


 回到顶部
帅哥哟,离线,有人找我吗?
jyh7081
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:960 积分:8466 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By:2016/9/12 16:56:00 [只看该作者]

版主,我的意思是窗口左侧的5个文本框都是需要替换的内容,而且都是来自同一行的不同字符串。窗口右边的5个文本框都是替换后的字符串。(窗口中间是向右的剪头,没显示出来)

步骤是:1、选中  行(替换范围);
           2、弹出替换窗口;
           3、在左侧文本框编辑需替换的字符串,右侧文本框编辑替换后的字符串;
           4、点击替换按钮,一次性完成对该行的多处字符串的替换。
[此贴子已经被作者于2016/9/12 16:57:19编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109406 积分:556686 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:960 积分:8466 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109406 积分:556686 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:960 积分:8466 威望:0 精华:0 注册:2012/10/3 13:25:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109406 积分:556686 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

省略号自己补充完整

 回到顶部
总数 15 1 2 下一页