VBA代码精选(3):文本转数值
(2021-10-13 14:31:28)
标签:
excelvba |
分类: Excel相关 |
此系列VBA代码大部来自网络,有部分是自己写的,已实践过,可以使用。我所用系统平台是win10+office365,64位,但绝大部分代码可以用在32位系统中。
Range("C3:C" &
Cells(Rows.Count, "a").End(xlUp).row).Select
'//指定范围转数值
Selection.TextToColumns
Destination:=Range("c3"), FieldInfo:=Array(1, 1)
[c3:j55] = [1*c3:j55]
'//这个方法只能指定范围,且指定范围内必须有数据,否则出错。
Dim aa As Range,
tt&
tt = Cells(Rows.Count,
"e").End(xlUp).row
Set aa =
Union(Range("k6:y" & tt), Range("ad7:aj" & tt))
With aa
.Value = .Value
.NumberFormat = "0.00"
'//文本转数值,小数点保留2位
End With
ActiveWindow.DisplayZeros = False
'***********************************************
'使用示例: Call z多列文本转数值(6,
"ad", "aj", tt)
'//多列文本转数值
'说明:指定范围转数值,6指起始行号,起始列和终止列是需转换的数据的范围的起始列符和终止列符,tt是指取最大行号
'***********************************************
Range(Cells(line, 起始列),
Cells(tt, 终止列)).Select '//区域选择
With Selection
.Value = .Value
.NumberFormat = "0.00"
'//文本转数值,保留2位小数
End With
ActiveWindow.DisplayZeros = False
Dim tt&
tt = Cells(Rows.Count,
"b").End(xlUp).row
Call z多列文本转数值(4, "e",
"f", tt)
'//4指起始行号,"e"和"f"是需转换的数据的范围的起始列符和终止列符,tt是指取最大行号
'***********************************************
'使用示例:Call z单列文本转数值(10,
"b", tt)
'//文本转数值,10指起始行号,"b"是需转换的列号,tt是指取最大行号
'说明:指定范围转数值,10指起始行号,2是需转换的列号,tt是指取最大行号
'***********************************************
Range(Cells(line, 列符),
Cells(tt, 列符)).Select
'//指定范围转数值
Selection.TextToColumns
Destination:=Cells(line, 列符), FieldInfo:=Array(1, 1)
Dim tt&
tt = Cells(Rows.Count,
"b").End(xlUp).row
Call z单列文本转数值(4, "a",
tt)
'//文本转数值,4指起始行号,"a"是需转换的列号,tt是指取最大行号
数值转文本,或文本转数值,在数据处理中经常用到,此为文本转数值。为啥要文本转数值,这个很好理解,就是便于数据处理,文本数值是无法参与汇总和统计的。
以下是文本转数值的几种方法(代码可以直接使用)。
1、单列文本转数值(这个比较简单):
Sub 单列文本转数值()
'//批量转换,速度快
End Sub
2、多列文本转数值(固定范围):
Sub 多列文本转数值固定范围()
End Sub
3、不同范围文本转数值(区域可以联合):
Sub 不同区域范围文本转数值()
End Sub
4、连续列指定位置文本转数值(带参数过程,便于VBA中调用):
Sub z多列文本转数值(line, 起始列$, 终止列$, tt)
'//批量转换,速度快
End Sub
Sub z文本转数值s()
'//多列文本转数值调用实例
End Sub
5、单列文本转数值(带参数过程,便于VBA调用):
Sub z单列文本转数值(line&, 列符$, tt&)
'//单列文本转数值过程
End Sub
Sub z文本转数值() '//单列文本转数值过程调用实例
End Sub