cdr 中經常遇到段落末尾有空行,一個去洗掉,很麻煩,想做一個消除段落空行的插件,誰給個思路,有代碼更好!
uj5u.com熱心網友回復:
正則運算式查找替換。uj5u.com熱心網友回復:
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 "-------"
uj5u.com熱心網友回復:
'去除中間的空行
len1=Len(strTest)
Do
strTest = Replace(strTest, vbCrLf & vbCrLf, vbCrLf)
len2=Len(strTest)
if len1=len2 then exit do
len1=len2
Loop
uj5u.com熱心網友回復:
測驗了,沒有反應,我的是X4版本的uj5u.com熱心網友回復:
以上的代碼都不靠譜。據我的經驗,有些空行會有些空白的字符和制表符等。末尾也可能會有,在凡人眼里看起來就是“空行”
'此代碼由“正則測驗工具 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里就可以執行的。
uj5u.com熱心網友回復:
因為樓主就這么一句話,也沒給個測驗用例檔案,大家只能猜是回車換行咯。就那一句話誰知道后面空行是不是神奇字符導致的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/42039.html
標籤:VBA
上一篇:用API函式CreatePopupMenu建的右鍵選單為什么在VB里可以,在VBA中是灰的?
下一篇:vbs打不開
