加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于文本转数值和数值转文本的VBA代码

(2020-08-05 10:54:13)
标签:

excel

vba

分类: Excel相关
     对于经常处理数据的人来说,很多时候原始数据是别人提供的,但往往提供的数据并不完全都符合数据格式,有些数值其实是文本型的,这种情况下,就需要对数据进行清洗处理,比如:整列文本数据转为数值,或者反过来,数值型数据要转为文本型数据。方法有很多,下面是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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有