对于经常处理数据的人来说,很多时候原始数据是别人提供的,但往往提供的数据并不完全都符合数据格式,有些数值其实是文本型的,这种情况下,就需要对数据进行清洗处理,比如:整列文本数据转为数值,或者反过来,数值型数据要转为文本型数据。方法有很多,下面是VBA方法,直接上代码。
一、整列文本数据转数值:
Sub 文本转数值整列()
Columns("A:A").Select
Selection.TextToColumns
Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote,
ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False,
Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
End Sub
此法对于多数据处理比较有利,因为转换速度快。
二、整列数值转文本:
Sub 数字转文本整列()
Columns("A:A").Select
Selection.TextToColumns
Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote,
ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False,
Other:=False, FieldInfo _
:=Array(1, 2), TrailingMinusNumbers:=True
End Sub
此法对于多数据处理比较有利,因为转换速度快。
以上二种转换,其实代码原理一致的,唯一的区别在于Array(1, 2)数组,Array(1,
1)表示文本转数值,Array(1, 2)表示数值转文本。
三、整列文本转数值:
Sub 文本转数值整列999() '//N列转为数字格式
Dim aa
Set aa =
Range("n:n")
'//转换的范围设定
With aa
.NumberFormatLocal = "G/通用格式"
'单元格更改成常规格式
.Value = .Value
End With
End Sub
此法也能实行文本转数值,代码上好理解一点,速度上其实也差不多。
四、整列数值转文本:
Sub 文本转数值整列999() '//N列转为数字格式
Dim aa
Set aa =
Range("n:n")
'//转换的范围设定
With aa
.NumberFormatLocal = "@"
'单元格更改成文本格式
End With
End Sub