背景:
我需要一个功能来根据STD名称和分析的文本有效地关联控件。 IG:
a)其他一些输入会抛出变量" mytext"
b)如果ListBox1.Value有" mytext"然后我必须将它与ToggleButton1联系起来
的方法
我做了以下 部分 的功能
代码:
Private Function RelateControl_ToggleVsList(ToggleCtrl As Control) As Control
Dim ItemControl As Control
Dim myControl As Object
For Each ItemControl In Me.Controls
If TypeName(ItemControl) = "ListBox" Then ' 1. If TypeName(ItemControl) = "Label"
'text lenghts const 13 for ListBox_TimeXX and 22 for ToggleButton_PriorityXX
If Mid(ItemControl.Name, 13, 2) = Mid(ToggleCtrl.Name, 22, 2) Then Set RelateControl_ToggleVsList = ItemControl: Exit Function
End If ' 1. If TypeName(ItemControl) = "Label"
Next ItemControl
End Function
问题:
设置结果时我得到一个null属性:
Set RelateControl_ToggleVsList = ItemControl 'This is nullSet
编辑:
根据请求,我添加整个Debugging以查看它被称为表单的位置
呼叫代码
Private Sub ToggleButtons_Active()
Dim ItemControl As Control
Dim ItemTextBox As Variant
Dim TxtControl As String
For Each ItemControl In Me.Controls
If TypeName(ItemControl) = "ToggleButton" Then ' 1. If TypeName(ItemControl) = "ToggleButton"
TxtControl = CStr(RelateControl_ToggleVsList(ItemControl).Value)
If InStr(TextBox_Notes.Value, TxtControl) > 0 And TxtControl <> "" Then ItemControl.Value = True
End If ' 1. If TypeName(ItemControl) = "ToggleButton"
Next ItemControl
End Sub
答案 0 :(得分:3)
您的错误发生在您的行上
TxtControl = CStr(RelateControl_ToggleVsList(ItemControl).Value)
因为返回的Control的Value
属性当前为Null
,无法转换为String。
我建议您将TxtControl
更改为Variant
类型,然后说
TxtControl = RelateControl_ToggleVsList(ItemControl).Value
If IsNull(TxtControl) Then
TxtControl = ""
Else
TxtControl = CStr(TxtControl)
End If
或者您可以定义一个Control对象然后使用它:
Dim MyControl As Control
MyControl = RelateControl_ToggleVsList(ItemControl)
If IsNull(MyControl.Value) Then
TxtControl = ""
Else
TxtControl = CStr(MyControl.Value)
End If
答案 1 :(得分:0)
<强> 解决方案: 强>
对象本身正在调用不属于它的属性(按预期)。
ListBox Properties没有显示“价值”作为其文本,真实的东西应该称之为:
TxtControl = CStr(RelateControl_ToggleVsList(ItemControl).List(0))CStr(RelateControl_ToggleVsList(ItemControl).List(0))
<强> 此外: 强>
由于提供的解决方案和调试过程,我甚至可以注意到对象是函数中的Set,它在调试时显示为它的“value”属性。