关于类型转换。。

helanshan 2004-07-18 11:39:08
j = Replace("3?2?3", "?", "+")
'导出一个字符串,应该怎样计算它的值。。
'我用了CInt函数,提示类型不匹配
...全文
162 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
helanshan 2004-07-19
  • 打赏
  • 举报
回复
是呀!
还写了一个Function
在调用过程中提示参数错误,我应该怎样用
Public Function sum(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer
sum = a + b + c

End Function
Private Sub Command1_Click()

j = Replace("3?2?3", "?", "+")


n = sum(j)

MsgBox n

End Sub
James0001 2004-07-19
  • 打赏
  • 举报
回复
楼主是要计算字符串里的表达式的值?
helanshan 2004-07-19
  • 打赏
  • 举报
回复
我已经用VAL函数试过了,只会导出第一个字符啊。。
楼上的兄弟:你测试过我的问题吗??
VBDN 2004-07-19
  • 打赏
  • 举报
回复
利用API实现字符串表达式的计算,推荐★★★★★
Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long

Private Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function


Sub calc(ByVal x As String)
Dim result
ExecuteLine "dim x as double"
ExecuteLine "x= " & x
ExecuteLine "clipboard.settext x"
result = Clipboard.GetText
MsgBox x & "=" & result
Set result = Nothing
End Sub

Private Sub Command1_Click()
calc Text1
End Sub

Private Sub Form_Load()
Text1.Text = "1+2*3-4/5"
End Sub
VBDN 2004-07-19
  • 打赏
  • 举报
回复
调用系统计算器进行加法运算的函数Sum
Private Sub Command1_Click()
Dim x
x = Sum(Text1.Text)
Debug.Print x
End Sub
Public Function Sum(ByVal Expression As String) As Integer
Expression = Replace(Expression, "+", "{+}") & "=" '+必须放在{}中
Shell "calc.exe", vbHide '调用系统计算器
SendKeys Expression
SendKeys "^c" '复制结果值到剪贴板
SendKeys "%{F4}" '关闭计算器
Sum = Val(Clipboard.GetText) '从剪贴板复制结果值
End Function
Private Sub Form_Load()
Text1.Text = "2+3+6"
End Sub
VBDN 2004-07-19
  • 打赏
  • 举报
回复
你写的SUM函数应该有三个参数才行,比如:
n= sum (11,52,36)
XqYuan 2004-07-19
  • 打赏
  • 举报
回复
用Split将字串分割,然后再加好了
熊孩子开学喽 2004-07-18
  • 打赏
  • 举报
回复
使用REPLACE这个函数得到的返回值是STRING型的,你需要将它转换为数值型,才可以用来计算:
Dim A as long
Dim B as string
B = "12"
A = Val(B)
使用VAL函数可以将一个文本型的数字转化为数值型。
CINT是用来将将数字从一种数据类型转化为整型数据

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧