调用过程提示:编译错误!类型不匹配!

adnim 2005-11-11 07:34:33
写了点调用过程的代码,试运行的时候提示:编译错误!类型不匹配!
代码如下(无关代码省略):
Private Sub Command1_Click()
Open Text1.Text For Random As #1 Len = 1
Dim d As String * 1
'On Error GoTo ddd
Do Until EOF(1)
Get #1, , d '此处实际读出为“d”
Select Case d
Case "d"
List1.AddItem sub_d()
........
End Select
Loop
Close #1
ddd:
End Sub

Private Function sub_d()
Dim a As String * 1
Dim pp As String
pp = "{"
Do
Get #1, , a '此处实际读出为“8”
Select Case a
........
Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"
pp = pp & sub_no(a)
........
End Select
Loop
pp = pp & "}"
sub_l = pp
End Function

Private Function sub_no(ByVal sub_no_no As String) '提示此行编译问题,类型不匹配!
'单步跟踪问题依旧,sub_no过程
'代码根本未执行。故不怀疑sub_no
'过程代码有问题
Dim sub_no_a(0 To 100) As String * 1
Dim a As Long

Dim n As Integer
For n = 0 To 100
Get #1, , sub_no_a(n)
If Val(sub_no_a(n)) = 0 Then
If sub_no_a = 0 Then
Else
Exit For
End If
End If
Next n
Dim p As Integer
p = 0
For m = n - 1 To 0
a = a + Val(sub_no_a(p)) * 10 ^ m

p = p + 1
Next m
a = a + Val(sub_no_no) * 10 ^ n
Dim dd As String
dd = sub_no_a(n)
For d = 1 To a - 1
Get #1, , s
dd = dd & s
Next d
sub_no = dd
End Function

怀疑另有玄机,另写一测试代码,竟毫无任何问题通过
测试代码:
Private Sub Command1_Click()
Dim a As String * 1
a = "1"
Label1.Caption = sub_a(a) '执行后label1显示结果为2
End Sub

Private Function sub_a(ByVal sub_a_a As String)
Dim b As Integer
b = Val(sub_a_a)
b = b + 1
sub_a = b
End Function
将vb关掉再重新启动,问题依旧。遂迷!
请教高人!不盛感激!
...全文
596 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
winehero 2005-11-12
  • 打赏
  • 举报
回复
If sub_no_a = 0 Then '对数组赋值0显然类型不匹配而报错。。。,
'将其改为:if sub_no_a(n)="0" then
northwolves 2005-11-12
  • 打赏
  • 举报
回复
If Val(sub_no_a(n)) = 0 Then
If sub_no_a = 0 Then'------------>sub_no_a是数组啊,这样赋值肯定报"类型不匹配"
Else
Exit For
End If
End If

---------------------------

不信你可以试试下面代码:
Private Sub Command1_Click()
Dim x(100) As String
If x = 2 Then
End If
End Sub
adnim 2005-11-12
  • 打赏
  • 举报
回复
郁闷了- -#
我单步跟踪到刚进过程就抱错,所以根本没看下边的代码。教训啊教训!
adnim 2005-11-11
  • 打赏
  • 举报
回复
不好意思,我是纯自学vb的,正在尽力使自己的代码流程更容易看清楚^_^
1,我把所有的function 都加上as string。问题依旧。
2,我取的是个有意义的字符,想了半天才决定用这种方法的。stra是什么?
3,什么意思?我不太明白
我打开的是个.torrent文件,你可以找个文件试一下
daisy8675 2005-11-11
  • 打赏
  • 举报
回复
你的代码非常的混乱

1,Private Function sub_no(ByVal sub_no_no As String)
使用function是需要定义返回数值

比如 function aa() as string 这样,你这边没返回定义

2,Dim a As String * 1 你这样的写法我个人很少用,你一定a 只有一个,那么请定义成stra这样更容易让人理解

3,ByVal sub_no_no As String还是象你这样的定义很让人迷糊

你的代码无法调试,我建议你写个简单那点的试一下

7,762

社区成员

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

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