我有一组非常大的数据集,它们以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中的一个新段落。
希望有帮助!