我一直在使用Excel VBA中的处理文件来从我们非常旧的数据库软件中获取原始数据,并将.txt
输出安排到Excel数据库中。我遇到的问题是我需要在数字序列后面添加一个分隔标记,告诉Excel将文本字符串的这一部分分成两列。数字序列的范围从0.0000
到999.9999
,我需要保持这个数字不变。该数字始终用四个小数点表示。
有人可以就如何在列中所有单元格的可变数字序列之后添加字符(如Æ)给出一些指示吗?
原始数据:
A1:Hello World,这是22.5010的测试,只是一个测试
A2:Hello World,这是一个0.1250的测试,只是一个测试
A3:Hello World,这是一个0.0000的测试,只是一个测试
最终结果:
A1:Hello World,这是22.5010的测试,只是一个测试
A2:Hello World,这是0.1250的测试,只是一个测试
A3:Hello World,这是0.0000的测试,只是一个测试
提前谢谢!
答案 0 :(得分:1)
即使在之后出现,这也会有效 如果时间段之前数字
,则无效在:
A1:Hello World,这是一个0.1250的测试,只是一个测试 A2:你好世界,这是一个0.1250和一个te.st的测试 A3:Hello W.orld,这是一个0.1250的测试,只是一个测试
之后:
A1:Hello World,这是0.1250的测试,只是一个测试 A2:你好世界,这是一个0.1250的测试,并且是一个te.st
A3:你好W.orld,这是一个0.1250的测试,只是一个测试
代码:
For cell = 1 To 3 ' ENTER MAX ROW
Range("A" & cell).Value = Left(Range("A" & cell).Value, InStr(Range("A" & cell).Value, ".") + 4) & "Æ" & Right(Range("A" & cell).Value, (Len(Range("A" & cell).Value) - 4) - InStr(Range("A" & cell).Value, "."))
Next cell
答案 1 :(得分:1)
不要忘记添加对项目的正确引用(在选项卡工具>参考中):
添加“ Microsoft VBScript正则表达式5.5 ”
现在在excel页面上添加一个按钮,然后双击按钮打开正确的宏页面。将他的代码添加到刚刚打开的宏页面中:
Sub Button1_Clic()
'
' Button1_Clic Macro
'
'This sub will scan through the first column (A) and add Æ to the end of
'numbers with the proper format.
On Error Resume Next 'Needed incase the line doesn't have a number
Dim i As Integer
Dim NumberStr As Object
Dim RegEx As RegExp
Set RegEx = New RegExp
With RegEx
.IgnoreCase = True
.Global = False
.Pattern = "\d{1,3}\.\d{4}"
End With
For i = 1 To 500 'Change last value to the last row in the column
Set NumberStr = RegEx.Execute(Range("A" & i).Value)
Range("A" & i).Value = RegEx.Replace(Range("A" & i).Value, NumberStr(0).Value & "Æ")
Next i
End Sub
此正则表达式"\d{1,3}\.\d{4}"
读取:
- 数字字符重复1到3次\d{1,3}
- 点\.
- 数字字符重复4次\d{4}
有关Regexes的更多信息。