我有一組非常大的數據集,它們以x0,y0,z0,x1,y1,z1 ... xn,yn,zn的形式表示笛卡爾座標。我需要在每個xyz座標的末尾創建一個新行。我一直在試圖記錄一個從每行開始移動一定數量空格的宏,然後創建一個新行。當然,這將不起作用,因爲每個xyz座標中的位數不同。用於將逗號分隔列表分隔爲列的字宏
如何在Microsoft Word中創建一個宏來執行此操作?
我有一組非常大的數據集,它們以x0,y0,z0,x1,y1,z1 ... xn,yn,zn的形式表示笛卡爾座標。我需要在每個xyz座標的末尾創建一個新行。我一直在試圖記錄一個從每行開始移動一定數量空格的宏,然後創建一個新行。當然,這將不起作用,因爲每個xyz座標中的位數不同。用於將逗號分隔列表分隔爲列的字宏
如何在Microsoft Word中創建一個宏來執行此操作?
試試這個:
Public Sub test()
Dim s As String
Dim v As Variant
Dim t As String
Dim I As Long
s = "x0,y0,z0,x1,y1,z1,xn,yn,zn"
v = Split(s, ",")
t = ""
For I = LBound(v) To UBound(v)
t = t + v(I)
If I Mod 3 = 2 Then
t = t + vbCr
Else
t = t + ","
End If
Next I
t = Left(t, Len(t) - 1)
Debug.Print t
End Sub
的Split
功能沿着分割的分隔符的字符串指定(逗號你的情況),將結果返回一個基於0陣列。然後在For
循環中,我們使用回車(vbCR
)每隔三個元素和一個逗號將其拼接在一起。
最後(可選)步驟是刪除拖尾回車。
希望幫助
的問題放在我們面前是最清楚的問
「請產生足夠的任務宏
我有直角座標,這些
陣列他們在許多行一行,三胞胎,如果你請!真正的」
我們本能地開始代碼,這個任務的解決方案
通常不問,‘就是這個樣子最好?’
但隨後另一種方案源於心靈
大多數崇敬朵:字替換並查找
提供了兩個文本框每次encantation
檢查通配符選項,並Amazation準備!
原諒我吧!
More
按鈕,檢查Use wildcards
箱Find what
進入([!,]{1,},[!,]{1,},[!,]{1,}),
Replace with
進入\1^p
Find Next
,Replace
和Replace All
照常工作原理
使用通配符[!,]{1,}
可找到一個或多個不是逗號的字符。這個習語重複3次,用2個逗號分隔3個實例。這將匹配3個逗號分隔的座標。然後將整個表達式包裹在圓括號中以創建一個自動編號的組(在這種情況下,組#1)。創建組允許我們保存與該模式相匹配的文本,並在Replace
框中使用它。圓括號之外還有一個逗號,它將座標與下一個座標分開。
在Replace
框\1
檢索自動編號的組1,這是我們的座標三元組。之後是^p
這是Word中的一個新段落。
希望有幫助!