在Excel VBA中的4位十进制变量数后面插入文本

时间:2014-08-06 16:19:51

标签: excel-vba vba excel

我一直在使用Excel VBA中的处理文件来从我们非常旧的数据库软件中获取原始数据,并将.txt输出安排到Excel数据库中。我遇到的问题是我需要在数字序列后面添加一个分隔标记,告诉Excel将文本字符串的这一部分分成两列。数字序列的范围从0.0000999.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的测试,只是一个测试

提前谢谢!

2 个答案:

答案 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

Reference

现在在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的更多信息。