以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎样一键删除所有表中单元格内的空行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89007)

--  作者:jyh7081
--  发布时间:2016/8/13 13:07:00
--  [求助]怎样一键删除所有表中单元格内的空行
就是单元格内的硬回车产生的行,不是指表内的行。
--  作者:Hyphen
--  发布时间:2016/8/13 14:56:00
--  
Tables("表A").Current("第三列") = Tables("表A").Current("第三列").Replace(chr(10), "").Replace(chr(13), "")
--  作者:jyh7081
--  发布时间:2016/8/13 15:50:00
--  

.Replace(chr(10), "").Replace(chr(13), "")  这个看明白了,是把回车和换行符替换为""

Tables("表A").Current("第三列")   ------------把这个换成所有表的所有列,不知怎么换,是不是要遍历For Each tb As Table In Tables......?,再指点一下


--  作者:Hyphen
--  发布时间:2016/8/13 16:05:00
--  
遍历所有表,所有行,所有列
--  作者:jyh7081
--  发布时间:2016/8/13 18:06:00
--  
一时写不了...
--  作者:jyh7081
--  发布时间:2016/8/14 12:38:00
--  
版主好!有空帮忙看看。先谢谢了!
--  作者:大红袍
--  发布时间:2016/8/14 12:45:00
--  

For Each t As Table In Tables
    For Each r As Row In t.rows
        For Each c As Col In t.cols
            r(c.name) = Cstr(r(c.name)).Replace(chr(10), "").Replace(chr(13), "")
        Next
    Next
Next


--  作者:jyh7081
--  发布时间:2016/8/14 12:47:00
--  
谢谢!好好研究一下。
--  作者:jyh7081
--  发布时间:2016/8/14 13:26:00
--  
版主,还有点问题:
执行代码后,确实删除了所有换行符及回车符。
但和我实际想解决的问题还有些不同:在单元格里编辑字符串时,如果用Ctrl+回车就会产生换行。这个单元格的内容如果导入word模板就会产生分段的效果。如果单元格尾部产生这样一个换行符就很不容易发现,往往是导出word模板发现空行后,才知道。

我想达到这样的效果:
执行前(共6行,两行字符,4行空行):
AAA

AAA


执行后(两行字符):
AAA
AAA


--  作者:大红袍
--  发布时间:2016/8/14 16:58:00
--  
For Each t As Table In Tables
    For Each r As Row In t.rows
        For Each c As Col In t.cols
            Dim ary() As String = cstr(r(c.name)).split(new Char() {chr(10), chr(13)})
            Dim str As String = ""
            For Each s As String In ary
                If s.trim > "" Then
                    str &= s & vbcrlf
                End If
            Next
            r(c.name) = str
        Next
    Next
Next