应用程序匹配错误13我不明白



我正在努力寻找的解决方案

application.match错误代码13

这只是vba中的一个简单代码,是不是有人可以帮助我修复这个代码

Private Sub cmbName_Change()
If Me.cmbName.Value <> "" Then
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("DATABASE")
Dim i As Integer

i = Application.Match(VBA.CLng(Me.cmbName.Value), sh.Range("A:A"), 0)
Me.txtDatepicker.Value = sh.Range("A" & y).Value
Me.cmbAddress.Value = sh.Range("C" & i).Value
Me.txtContact.Value = sh.Range("D" & j).Value
Me.cmbEducation.Value = sh.Range("E" & i).Value
Me.cmbSpecify.Value = sh.Range("F" & i).Value
Me.txtAge.Value = sh.Range("G" & j).Value
If sh.Range("H" & i).Value = "Male" Then Me.optMale.Value = True
If sh.Range("H" & i).Value = "Female" Then Me.optFemale.Value = True
Me.cmbTraining.Value = sh.Range("I" & i).Value
Me.cmbEmployment.Value = sh.Range("J" & i).Value
Me.txtOthers.Value = sh.Range("K" & i).Value
Me.txtAction.Value = sh.Range("L" & i).Value
Me.txtLivelihood.Value = sh.Range("M" & i).Value
End If
End Sub

错误代码13代表Type Mismatch

可能性1

您之所以会出现此错误,是因为您正在向Clng函数传递一个包含无法解释为数字的字符的字符串。因此,它不能转换为长变量。

为了解决这个问题,您可以添加一些错误处理,仅当Clng没有返回错误时才能转换为long,或者您可以同时取消Clng函数,并确保列a的格式为文本(因为这是您要匹配的范围(。

可能性2

出现此错误是因为A列中没有与组合框中的值匹配的单元格。

要解决这个问题,您需要添加一些错误处理,并决定在没有匹配时要做什么。

最新更新