下面是我的一段示例程序:
public sub aa(Btn() as CommandButton)
msgbox btn(0).caption
end sub Privat sub Form1_click()
aa(command1)
end sub
其中,command1是按钮数组名,index范围从0到3
结果报错:“编译错误:类型不匹配:缺少数组或用户定义类型”
请问是什么原因,该如何解决?
public sub aa(Btn() as CommandButton)
msgbox btn(0).caption
end sub Privat sub Form1_click()
aa(command1)
end sub
其中,command1是按钮数组名,index范围从0到3
结果报错:“编译错误:类型不匹配:缺少数组或用户定义类型”
请问是什么原因,该如何解决?
所以你更本不能定义一个数组来传递..
我也不是很明白你要实现的意思.
如果你非要这么做的话.可以这么写
Public Sub aa(btn As CommandButton)
Dim btnTemp As CommandButton
For Each btnTemp In Form1.Controls
If btn.Name = btnTemp.Name Then
'这里注意下面这句等同你的'msgbox btn(0).caption
If btnTemp.Index = 0 Then MsgBox btnTemp.Caption
'如果你要'msgbox btn(1).caption
'则下面相应的改变需要判断的index就可以了 也改为1
'If btnTemp.Index = 1 Then MsgBox btnTemp.Caption
End If
Next
End Sub
'还有注意调用 过程 aa 的时候 你只能这样传递,传递控件数组的任何一个对象
Privat sub Form1_click()
aa(command1(0)) '可以是0也可以是其他
end sub
msgbox btn.item(0).caption
end sub Privat sub Form1_click()
aa(command1)
end sub