求助:cdr 消除段落空行的vba源码

qq_40323566 2017-12-11 01:09:33
cdr 中经常遇到段落末尾有空行,一个去删除,很麻烦,想做一个消除段落空行的插件,谁给个思路,有代码更好!
...全文
521 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
脆皮大雪糕 2018-10-17
  • 打赏
  • 举报
回复
因为楼主就这么一句话,也没给个测试用例文件,大家只能猜是回车换行咯。
就那一句话谁知道后面空行是不是神奇字符导致的。
无·法 2018-10-17
  • 打赏
  • 举报
回复
以上的代码都不靠谱。据我的经验,有些空行会有些空白的字符和制表符等。末尾也可能会有,在凡人眼里看起来就是“空行”


'此代码由“正则测试工具 v1.1.43”自动生成,请直接调用TestReg过程
Private Sub TestReg()
Dim strData As String
Dim reg As Object
strData = "1 " & vbCrLf & _
" " & vbCrLf & _
" 22 " & vbCrLf & vbCrLf & vbCrLf & vbCrLf & _
"423" & vbCrLf & vbCrLf & _
"52"
Set reg = CreateObject("vbscript.regExp")
reg.Global = True
reg.IgnoreCase = False
reg.MultiLine = True
reg.Pattern = "^\s*?\r\n"
Debug.Print reg.Replace(strData, "")
End Sub



另外楼主不管你x4还是x6,大家都不可能安装个去测试,去了解cdr的vba,我虽然电脑装现成的x6,但是也懒得去了解。。
所以你要理解这些代码,知道是怎么实现的,然后修改到你代码里去。不可能直接复制粘贴就能到cdr里就可以执行的。
qq_40323566 2018-10-16
  • 打赏
  • 举报
回复
测试了,没有反应,我的是X4版本的
赵4老师 2017-12-11
  • 打赏
  • 举报
回复
'去除中间的空行
    len1=Len(strTest)
    Do
        strTest = Replace(strTest, vbCrLf & vbCrLf, vbCrLf)
        len2=Len(strTest)
        if len1=len2 then exit do
        len1=len2
    Loop
脆皮大雪糕 2017-12-11
  • 打赏
  • 举报
回复

    Dim strTest As String
    strTest = strTest & vbCrLf
    strTest = strTest & "这是一个测试字符串,最前面有一个空行" & vbCrLf
    strTest = strTest & vbCrLf
    strTest = strTest & "在这行前面有一个空行" & vbCrLf
    strTest = strTest & "在这行后面有若干个空行" & vbCrLf
    strTest = strTest & vbCrLf
    strTest = strTest & vbCrLf
    strTest = strTest & vbCrLf
    strTest = strTest & vbCrLf
    strTest = strTest & "结束,再加个回车换行" & vbCrLf
    
    Debug.Print "------- 原字符串"
    Debug.Print strTest
    Debug.Print "-------"
    
    '去除中间的空行
    Do
        strTest = Replace(strTest, vbCrLf & vbCrLf, vbCrLf)
    Loop While InStr(1, strTest, vbCrLf & vbCrLf) > 0
    
    '去除头部空行
    If Left(strTest, 2) = vbCrLf Then strTest = Right(strTest, Len(strTest) - 2)
    
    '去除尾部回车换行
    If Right(strTest, 2) = vbCrLf Then strTest = Left(strTest, Len(strTest) - 2)
    
    Debug.Print "------- 处理结果"
    Debug.Print strTest
    Debug.Print "-------"
赵4老师 2017-12-11
  • 打赏
  • 举报
回复
正则表达式查找替换。

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧