vb msgbox 运行后类型不匹配,在 MsgBox (testdll.AddN1(Text1)(Text2)) 这一句

[复制链接]
查看11 | 回复5 | 2011-8-31 17:16:16 | 显示全部楼层 |阅读模式
工程内容:
Dim testdll As add2
Private Sub Command1_Click()

Text2 = b

MsgBox (testdll.AddN1(Text1)(Text2))
End Sub
Private Sub Form_Load()

Set testdll = New add2
End Sub
dll文件:
Public Function AddN1(ByVal a As Integer) As Integer

Dim b As Integer

Dim c As Integer

c = a ^ b
End Function

回复

使用道具 举报

千问 | 2011-8-31 17:16:16 | 显示全部楼层
工程内容:Dim testdll As add2'如果Dim testdll As New add2,Form_Load即可去掉Private Sub Command1_Click()
MsgBox testdll.AddN1(Val(Text1), Val(Text2))End Sub'将Text1和Text2强制转换为数值。Private Sub Form_Load()
Set testdll = New add2End Subdll文件:'Function应该有返回值,如果没有返回值,那就用Sub可以了;'AddN1 As Integer容易导致错误,因为a ^ b很轻易突破In...
回复

使用道具 举报

千问 | 2011-8-31 17:16:16 | 显示全部楼层
MsgBox (testdll.AddN1(Text1)(Text2))错误是因为你的AddN1(ByVal a As Integer) As Integer声明为了整型,而MsgBox的第一个参数需要的是字串类型,你可以这样:MsgBox cstr(testdll.AddN1(Text1)(Text2))使用cstr函数将integer类型强制...
回复

使用道具 举报

千问 | 2011-8-31 17:16:16 | 显示全部楼层
你用的MSGBOX语句,不是函数。不用括号。testdll是什么东西??MsgBox
AddN1(val(Text1),val(Text2))...
回复

使用道具 举报

千问 | 2011-8-31 17:16:16 | 显示全部楼层
MsgBox (testdll.AddN1(Text1)(Text2))这后面不能有Text2的,AddN1(ByVal a As Integer) As Integer 这里只ByVal了a,没有第二个参数...
回复

使用道具 举报

千问 | 2011-8-31 17:16:16 | 显示全部楼层
(testdll.AddN1(Text1)(Text2) 这个不是类型的问题(testdll.AddN1(Text1)返回一个数字 后面跟一个(Text2)是怎么回事...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行