Excel VBA – 运行时错误438:对象不支持此属性或方法

我是VBA新手,我有以下代码。 如果文本框不是无效的,我想在variablesSumDef中总结一个用户窗体的框架中的所有文本框的值。

但是我明白了

运行时错误438:对象不支持此属性或方法

Private Sub CommandButton2_Click() 'PROBLEEEEEM Dim SumDef As Integer Dim txt As Control SumDef = 0 For Each txt In Me.Frame3.Controls If TypeName(txt) = "TextBox" And IsNumeric(txt.Value) = True Then SumDef = SumDef + CInt(txt.Text) End If Next txt If TextBox2.Value <> vbNullString And CInt(TextBox2.Text) <= SumDef Then cell2.Offset(, 7).Value = TextBox2.Text cell2.Offset(, 19).Value = TextBox3.Text cell2.Offset(, 8).Value = TextBox4.Text cell2.Offset(, 9).Value = TextBox5.Text cell2.Offset(, 10).Value = TextBox6.Text cell2.Offset(, 11).Value = TextBox7.Text cell2.Offset(, 12).Value = TextBox8.Text cell2.Offset(, 13).Value = TextBox9.Text cell2.Offset(, 14).Value = TextBox10.Text cell2.Offset(, 15).Value = TextBox11.Text cell2.Offset(, 16).Value = TextBox12.Text cell2.Offset(, 17).Value = TextBox13.Text cell2.Offset(, 18).Value = TextBox14.Text MsgBox "Bac enregistré avec succes", vbInformation, "ENR FAB 07" Me.CommandButton3.Enabled = True Me.CommandButton2.Enabled = False Else MsgBox "Nombre de gants défauts est invalide", vbExclamation, "ENR FAB 07" TextBox2.Value = vbNullString End If End Sub 

嵌套你的If语句像这样,因为它试图评估所有控件的.Value否则,并不是所有的控件都有一个.Value属性:

 If TypeName(txt) = "TextBox" Then If IsNumeric(txt.Value) = True Then SumDef = SumDef + CInt(txt.Text) End If End If