分享

VBA数字2文本型互转数值

 c857084163 2023-05-27 发布于浙江

【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./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./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 ''数值转文本型(字符)

【】

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多