VBA for each control in controls 疑义
VBA for each control in controls 疑问
我调试的是VBA,应该VB也一样吧。
界面上有个MultiPage1容器,容器内有textbox控件
点击按钮btnReset时把所有textbox控件值设为""。
Private Sub btnReset_Click()
Dim txt As Control
'Set txt = txtTempC '怎么txt等于txtTempC.Text值???
For Each txt In MultiPage1.SelectedItem.Controls
If TypeOf txt Is TextBox Then
'为什么就跳不到这一步?
txt.Text = ""
End If
Next
End Sub
哪位老师帮帮我,谢谢。
------最佳解决方案--------------------
将
If TypeOf txt Is TextBox Then
改成
If TypeOf txt Is MSForms.TextBox Then
即可
------其他解决方案--------------------
容器上的控件不能通过容器来遍历,其上的控件不是从属于容器,而是从属于parent
Private Sub btnReset_Click()
Dim txt As Control
'Set txt = txtTempC '怎么txt等于txtTempC.Text值???
For Each txt In Controls
if txt.container is MultiPage1.SelectedItem then'此处,不知道是用这样还是应该使用if txt.container is MultiPage1 then'
If TypeOf txt Is TextBox Then
txt.Text = ""
End If
end if
Next
End Sub
------其他解决方案--------------------
谢谢,lyserver。
我调试的是VBA,应该VB也一样吧。
界面上有个MultiPage1容器,容器内有textbox控件
点击按钮btnReset时把所有textbox控件值设为""。
Private Sub btnReset_Click()
Dim txt As Control
'Set txt = txtTempC '怎么txt等于txtTempC.Text值???
For Each txt In MultiPage1.SelectedItem.Controls
If TypeOf txt Is TextBox Then
'为什么就跳不到这一步?
txt.Text = ""
End If
Next
End Sub
哪位老师帮帮我,谢谢。
------最佳解决方案--------------------
将
If TypeOf txt Is TextBox Then
改成
If TypeOf txt Is MSForms.TextBox Then
即可
------其他解决方案--------------------
容器上的控件不能通过容器来遍历,其上的控件不是从属于容器,而是从属于parent
Private Sub btnReset_Click()
Dim txt As Control
'Set txt = txtTempC '怎么txt等于txtTempC.Text值???
For Each txt In Controls
if txt.container is MultiPage1.SelectedItem then'此处,不知道是用这样还是应该使用if txt.container is MultiPage1 then'
If TypeOf txt Is TextBox Then
txt.Text = ""
End If
end if
Next
End Sub
------其他解决方案--------------------
谢谢,lyserver。