【2】VBA数字字符串转数字文本型数字转数值
0/Option Explicit
Sub test() '文本型数字转数值
Dim a As String
'a = "1+2"
a = "13"
Debug.Print Val(a) '?,a = "1+2",得1; a = "03",得3;a = "13",得13
Debug.Print Val("1+2") '?,得1
Debug.Print Application.ExecuteExcel4Macro(a) 'Ok! 得3
Debug.Print Application.Evaluate(a) 'Ok! 得3
b = Application.Evaluate(a)
Debug.Print b + 1 'Ok! 得4
End Sub
'End Sub
1/Excel 在vba 中如何把字符串转换成数字 http://club.excelhome.net/thread-36870-1-1.html
4#/转换函数有很多,cint->integer,cdbl->double,clng->long
2/Excel vba里怎么将字符串转换为数值?_百度知道 https://zhidao.baidu.com/question/588910123563649685.html
3/Excel vba 里怎么将字符串转换为数值_百度知道 https://zhidao.baidu.com/question/564287218333087364.html?qbl=relate_question_3&word=vba%CA%FD%D7%D6%D7%D6%B7%FB%B4%AE%D7%AA%BB%BB%B3%C9%CA%FD%D7%D6
4/VB 怎样将字符串转化为数值_百度知道 https://zhidao.baidu.com/question/539001081.html
数值变量=Val(字符串)例:n = Val("3.5") ' 变量n赋值为3.5
或者使用取整函数如: 数值变量=Int(字符串) 或者 数值变量=CInt(字符串)
n = Int("3.5") ' 取整数,变量n赋值为3
n = CInt("3.5") ' 四舍五入取整数,变量n赋值为4
Cstr("12345") 就是把字符串"12345"转换成了数值 12345
------
5/Excel vba 里怎么将字符串转换为数值_百度知道 https://zhidao.baidu.com/question/564287218333087364.html
5.1VALUE(text),VALUE函数只有一个参数text,表示需要转换成数值格式的文本。text参数可以用双引号直接引用文本,也可以引用其他单元格中的文本。
=
5.2用四则运算法将字符型数字转换成数字型。可以用+0,-0,*1,/1来将字符型数字转换成数字型数字。
5.3/3、数字型数字转换成文本型,用TEXT函数将数字型数字转换成文本型,Text函数的基本语法格式:TEXT(value,format_text),Value:为数值、计算结果为数字值的公式,或对包含数字值的单元格的引用。Format_text:是作为用引号括起的文本字符串的数字格式。例如:C2=TEXT(B2,0),就变成了文本型。
5.4/将字符型数字转换成数字型,value将数字型文本字符串转为数字,
结构是:value(text),只有一个参数text,表示要转换为数字格式的文本,文本参数可直接引用双引号中的文本,或引用单元格文本。
=Value(B3) 'Excel中函数用
b=Val("55") 'VBA中用
------
6/VBA学习笔记之Text(五)——字符串型数值和数值型字符串相互转换_空空空_新浪博客 http://blog.sina.com.cn/s/blog_7f14264a01013eh5.html
6.1/数值转化为字符串函数Str、CStr
6.2/字符型数值转化为数值型数据
7/百度知道:VBA怎么将字符串表达式转化成数值。如"1+2",用val函数得到结果为1
https://sa93g4.smartapps.cn/pages/question/question?qid=1992553285419532907&hostname=baiduboxapp&_swebfr=1
BBS:
Option Explicit
Sub test()
Dim a As String
a = "1+2"
Debug.Print Application.ExecuteExcel4Macro(a)
Debug.Print Application.Evaluate(a)
End Sub
试试上面的代码你就知道了,Application.ExecuteExcel4Macro 或者 Application.Evaluate 都可以达到效果!
*****
czm/1:
wbN1 = ActiveWorkbook.Name '文件名为:03.07.Xlsm
'Debug.Print wbN1
wbN1a = Left(wbN1, 2)
'wbN1a = Left(ActiveWorkbook.Name, 2)
Debug.Print wbN1a
Qyh6 = Val(wbN1a) '?得0
Debug.Print Qyh
-----
czm2/
Sub a3()
b3 = Format(CInt(Right("03", 2)), "00")
Debug.Print b3 '得数字03,
b31 = b3
Debug.Print b31 '得数字03,
b32 = b3 * 1
Debug.Print b32 '得数字3,可去掉前导0
End Sub
----
Sub a3()
'b3 = Format(CInt(Right("03", 2)), "00") 'Ok
b3 = Format(Val(Right("03", 2)), "00") 'Ok
Debug.Print b3 '得数字03,
b31 = b3
Debug.Print b31 '得数字03,
b32 = b3 * 1
Debug.Print b32 '得数字3,可去掉前导0
End Sub
sub Qyh3()
wbN1 = ActiveWorkbook.Name 'Ok!
'Debug.Print wbN1
wbN1a = Left(wbN1, 2) 'Ok!
'wbN1a = Left(ActiveWorkbook.Name, 2)
Debug.Print wbN1a
Qyh = wbN1a * 1 'Ok!
b3 = Format(Val(Left(wbN1, 2)), "00") 'Ok!
'b3 = Format(Val(Right(wbN1a, 2)), "00") 'Ok
'b3 = Format(Val(Right("03", 2)), "00") 'Ok
'Qyh6 = Val(wbN1a) '?得0
'b3 = Format(Val(wbN1)), "00") '?
'b3 = wbN1 * 1 '?错误13,类型不匹配
'Debug.Print b3 'Ok!得03
'Qyh = b3 * 1 'Ok,
'Qyh = b3 + 1 'Ok,得4
Debug.Print Qyh
Cells(98, 1) = Qyh
end sub
Str1 = Cells(1,1).Value ''数值转文本型(字符)
【】
联系客服