:( 我想要得应该是如下的样子: public function(text() as textcontrol,str as string) dim i as integer for i=0 to text.ubound text(i).text=str next end function只是这样写不对,我又不知道该怎么写,有劳各位了,我在这先谢了。
Private Sub Command1_Click() Call UpDate(Text1, "Hello") End SubPrivate Sub UpDate(txtCol As Variant, str As String) For Each txtCol In Controls If CStr(TypeName(txtCol)) = "TextBox" Then txtCol.text = str End If Next
End Sub可能不太好,起个抛砖引玉的作用,您自己试试吧!
Private Sub UpDate(txtCol As Variant, str As String) For Each txtCol In Controls If CStr(TypeName(txtCol)) = "TextBox" Then txtCol.text = str End If Next
End Sub调用Call UpDate(Text1, "Hello") Text1是控件数组名 调用后所有TextBox中的内容都变成了"Hello"这方法可能不好,您试试别的方法吧!
public function ww(txt as Variant) txt(0).text="pp" txt(1).text="ooo" end function
Private Sub Command1_Click() ShowText txt(), "Hello world" End SubPrivate Sub Form_Load() Dim nIndex As Integer For nIndex = 1 To 4 Load txt(nIndex) txt(nIndex).Visible = True txt(nIndex).Move txt(0).Left, txt(0).Top + nIndex * 15 * 20 Next nIndex End Sub Private Sub ShowText(ByRef txt As Object, ByVal sText As String) Dim nIndex As Integer Dim nCounter As Integer
Debug.Print TypeName(txt) Debug.Print txt.Count nCounter = txt.Count - 1 For nIndex = 0 To nCounter txt(nIndex).Text = sText Next nIndex End Sub可以实现你说的那种方法,但是我觉得这是不好的一种方法,呵呵
public sub ssss(byref txt as Variant) txt(0).text="ppp" end sub
哦行了,多谢!再请教一下。 Private Sub ShowText(ByRef txt As Object, ByVal sText As String) 如果把此处的object 换成textbox就不行了,换成Variant也可以,为什么?
我想要得应该是如下的样子:
public function(text() as textcontrol,str as string)
dim i as integer
for i=0 to text.ubound
text(i).text=str
next
end function只是这样写不对,我又不知道该怎么写,有劳各位了,我在这先谢了。
Call UpDate(Text1, "Hello")
End SubPrivate Sub UpDate(txtCol As Variant, str As String) For Each txtCol In Controls
If CStr(TypeName(txtCol)) = "TextBox" Then
txtCol.text = str
End If
Next
End Sub可能不太好,起个抛砖引玉的作用,您自己试试吧!
If CStr(TypeName(txtCol)) = "TextBox" Then
txtCol.text = str
End If
Next
End Sub调用Call UpDate(Text1, "Hello") Text1是控件数组名
调用后所有TextBox中的内容都变成了"Hello"这方法可能不好,您试试别的方法吧!
txt(0).text="pp"
txt(1).text="ooo"
end function
ShowText txt(), "Hello world"
End SubPrivate Sub Form_Load()
Dim nIndex As Integer
For nIndex = 1 To 4
Load txt(nIndex)
txt(nIndex).Visible = True
txt(nIndex).Move txt(0).Left, txt(0).Top + nIndex * 15 * 20
Next nIndex
End Sub
Private Sub ShowText(ByRef txt As Object, ByVal sText As String)
Dim nIndex As Integer
Dim nCounter As Integer
Debug.Print TypeName(txt)
Debug.Print txt.Count
nCounter = txt.Count - 1
For nIndex = 0 To nCounter
txt(nIndex).Text = sText
Next nIndex
End Sub可以实现你说的那种方法,但是我觉得这是不好的一种方法,呵呵
txt(0).text="ppp"
end sub
Private Sub ShowText(ByRef txt As Object, ByVal sText As String)
如果把此处的object 换成textbox就不行了,换成Variant也可以,为什么?
因为你传的是控件数组。as textbox 表示声明一个textbox对象。而不是textbox控件数组。而声明成Variant就表示你声明的类型不确定。注意Variant是后期绑定的速度较慢,最好尽可能不要使用Variant。