Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 22213|回复: 11

[已解决]VBA中如何调用Value函数?

[复制链接]
发表于 2014-2-9 17:50 | 显示全部楼层 |阅读模式
VBA中如何调用Value函数?
最佳答案
2014-2-12 20:58
一句话,VBA中对应工作表函数=Value(txt)的VBA函数是 =Val()

而且这个函数功能比工作表Value函数强大的多……具体看帮助文件。

Val 函数
      

返回包含于字符串内的数字,字符串中是一个适当类型的数值。

语法

Val(string)

必要的 string 参数可以是任何有效的字符串表达式.

说明

Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。

下面的返回值为 1615198:

Val("    1615 198th Street N.E.")

在下面的代码中,Val 为所示的十六进制数值返回十进制数值 -1。

Val("&HFFFF")

注意 Val 函数只会将句点(.)当成一个可用的小数点分隔符。当使用不同的小数点分隔符时,如在国际版应用程序中,代之以 CDbl 来把字符串转换为数字。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-2-9 18:38 | 显示全部楼层
呃,如果是你想用VBA把单元格中填入公式,公式中包涵了VALUE函数,那么你只需要把原本的公式两头加引号即可
例如:
range("a1")="=VALUE(C1)"
如果你想把单元格中的值运于运算,那么不用调用VALUE来得到单元格中的值了(调也调不成),直接用单元格的.value就可以了
例如:
range("a1")=Range("c1").Value + 1
回复

使用道具 举报

发表于 2014-2-9 18:43 | 显示全部楼层
呃,单纯的单元格值引用时,上面那个.value可有可无,即
range("a1")=Range("c1")+ 1
如果C1里面是个文本型的数字,通过运算后会自动转成数字,而如果里面不是个文本型数字,运算时也会报错,类型不匹配
回复

使用道具 举报

 楼主| 发表于 2014-2-9 21:42 | 显示全部楼层
不信这样还重名 发表于 2014-2-9 18:38
呃,如果是你想用VBA把单元格中填入公式,公式中包涵了VALUE函数,那么你只需要把原本的公式两头加引号即可 ...

呵呵,我想把这个文本型的数字在VBA中变成数字放到变量y里,Right(Range("a" & x).MergeArea.Address, 1),你那个方法好像不行
回复

使用道具 举报

发表于 2014-2-9 22:35 | 显示全部楼层
lxh1988lxh 发表于 2014-2-9 21:42
呵呵,我想把这个文本型的数字在VBA中变成数字放到变量y里,Right(Range("a" & x).MergeArea.Address, 1) ...

楼主上个附件吧,我测试了一下,同样是文本型数值,下面这个是可以的,不知楼主具体什么问题
Sub test()
Dim st As String
    st = "12"
    Range("a" & st).Select
End Sub
回复

使用道具 举报

 楼主| 发表于 2014-2-9 22:56 | 显示全部楼层
这个是附件,按钮8中的y变量是要得到的数字,y变量要用于下面的分析,里面我没写。

Book1.zip

78 KB, 下载次数: 11

回复

使用道具 举报

发表于 2014-2-10 19:10 | 显示全部楼层
lxh1988lxh 发表于 2014-2-9 22:56
这个是附件,按钮8中的y变量是要得到的数字,y变量要用于下面的分析,里面我没写。

555.png
楼主,里面没东西呀,不带这么玩儿的{:191:}
回复

使用道具 举报

 楼主| 发表于 2014-2-10 21:33 | 显示全部楼层
有呀,在VBA中,没看到按钮吗?
回复

使用道具 举报

发表于 2014-2-12 14:31 | 显示全部楼层
lxh1988lxh 发表于 2014-2-10 21:33
有呀,在VBA中,没看到按钮吗?

EXCEL文件都没有,更何谈按钮。。。、
回复

使用道具 举报

发表于 2014-2-12 20:58 | 显示全部楼层    本楼为最佳答案   
一句话,VBA中对应工作表函数=Value(txt)的VBA函数是 =Val()

而且这个函数功能比工作表Value函数强大的多……具体看帮助文件。

Val 函数
      

返回包含于字符串内的数字,字符串中是一个适当类型的数值。

语法

Val(string)

必要的 string 参数可以是任何有效的字符串表达式.

说明

Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。

下面的返回值为 1615198:

Val("    1615 198th Street N.E.")

在下面的代码中,Val 为所示的十六进制数值返回十进制数值 -1。

Val("&HFFFF")

注意 Val 函数只会将句点(.)当成一个可用的小数点分隔符。当使用不同的小数点分隔符时,如在国际版应用程序中,代之以 CDbl 来把字符串转换为数字。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 15:34 , Processed in 0.395701 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表