我正在尝试从文本文件生成X,Y,Z字符串,以输入到AutoCAD或Inventor等CAD程序中。我想在Excel中使用VBA执行此操作。
文本文件包含如下字符串:
G0X.5384Z.05
G1X.634Z-.0327F.004
Z-.9184F.006
X.592Z-.9548F.004
我想从中提取X,Y和Z坐标。为清楚起见,此文本已粘贴到Excel中,而A列包含每一行。第1行将在一列中显示为“X.5384”,在另一列中显示为“Z.05”。
我知道足够的VBA从字符串中删除XYZ,但我无法弄清楚如何拉出特定部分。无法保证它们将处于XYZ顺序或其他字母不在其中间。
我已经阅读了一些关于Regex.Split的内容,并且有足够的时间我可能会把它分开整个字符串,但我想把X,Y和Z坐标拉出来,如果可能的话忽略其余的。
答案 0 :(得分:2)
首先将这个小用户定义函数放在标准模块中:
Public Function GetData(r As Range, CH As String) As String
Dim v As String, i As Long, j As Long, L As Long, CHm As String
v = r.Text
L = Len(v)
GetData = ""
i = InStr(1, v, CH)
If i = 0 Then Exit Function
GetData = CH
For j = i + 1 To L
CHm = Mid(v, j, 1)
If CHm = "-" Or CHm = "." Or CHm Like "[0-9]" Then
GetData = GetData & CHm
Else
Exit Function
End If
Next j
End Function
然后在 B1 中输入:=getdata(A1,"X")
并复制下来
在 C1 中输入:=getdata(A1,"Y")
并复制。
在 D1 中输入:=getdata(A1,"Z")
并复制。
答案 1 :(得分:1)