yuangw1234 发表于 2006-4-5 20:57:00

提出数字

本帖最后由 作者 于 2006-4-6 12:30:29 编辑 <br /><br /> <P>请教</P>
<P>请问提取字符串中的数字函数是什么?为什么val(string)不可以用呢?</P>
<P>visual lisp中用(atoi strint)而vba中不可以</P>
<P>就如假如我输入m3, 要返回3给我</P>
<P>输入m3.25,要返回3.25给我</P>
<P>输和ttymp3.56要返回3.56给我</P>
<P>请知道者告知这个函数是什么?在此先谢谢诸位</P>

xinghesnak 发表于 2006-4-6 16:06:00

<P><B><FONT style="BACKGROUND-COLOR: #0a246a" color=#ffffff>Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串</FONT></B>。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 <CODE>&amp;O</CODE>(八进制)和 <CODE>&amp;H</CODE>(十六进制)。空白、制表符和换行符都从参数中被去掉。</P>
<P>如果你的第一个有效字符不是数字,那么val函数就什么也提不出来了,返回值为0</P>
<P>好像没有函数能实现你的要求,看样只能写个子程序自己判断了(asc码)</P>
<P>&nbsp;</P>

雪山飞狐_lzh 发表于 2006-4-6 20:18:00

<P>Function MyVal(String1 As String) As Double<BR>Dim n As Integer, i<BR>For i = 1 To Len(String1)<BR>n = Asc(String1)</P>
<P>If n &lt;= 57 And n &gt;= 45 And a &lt;&gt; 47 Then<BR>MyVal = Val(String1)<BR>Else<BR>String1 = Mid(String1, 2)<BR>End If</P>
<P>Next<BR>End Function</P>
<P>Sub tt()<BR>MsgBox MyVal("s-.89f")<BR>End Sub<BR></P>

yuangw1234 发表于 2006-4-6 21:48:00

<P>十分感谢雪山飞孤,请问师傅是否可以留个qq号或其它的联系方法</P>
页: [1]
查看完整版本: 提出数字