运行时错误13 - 不匹配

时间:2017-07-17 08:49:27

标签: excel vba userform

我是VBA编码和处理匹配代码的新手。当我在"数据表"中运行代码时,代码工作正常。 (表单是我的所有数据都是,并且必须找到匹配项),但是当我在首页上运行代码时(表1中包含用户表单),代码是debuggen并说"运行时错误13& #34 ;.任何人都能说出问题所在吗?

任何人都可以告诉我为什么我的" If isError"不起作用吗?

提前致谢!

'Find SKU and Test number
Dim icol As Integer


Sheet13.Range("XFD2") = UserForm2.ComboBox1.Value  'Sættes = ComboBox1.value
Sheet13.Range("XFD3") = UserForm2.ComboBox2.Value   'Sættes = ComboBox2.value



icol = [Sheet13.MATCH(XFD2&XFD3,A:A&Q:Q,0)] 'Match af værdien for vores SKU og test nr


With ThisWorkbook.Worksheets("Data sheet")



'If SKU or Test number not found, then messagebox
 If IsError("A:A") Then MsgBox "SKU not found": Exit Sub
 If IsError("Q:Q") Then MsgBox "Test number not found": Exit Sub


  'Add test result/next step and comment
  .Cells(icol, 30).Value = Me.ComboBox3.Value
  .Cells(icol, 30 + 1).Value = Me.Comments_To_Result.Value



End With


End If

Set objFSO = Nothing
Set openDialog = Nothing

Range("XFD2").Clear
Range("XFD3").Clear

1 个答案:

答案 0 :(得分:0)

icol应该是这样的:

icol = Application.match(arg1, arg2, arg3)

请参阅MSDN中的示例:

var = Application.Match(Cells(iRow, 1).Value, Worksheets(iSheet).Columns(1), 0)

关于If IsError("A:A") Then MsgBox "SKU not found": Exit Sub,你做错了。我假设,你想循环遍历第一列中的所有单元格,并获得其中一个是否是错误。你需要一个循环。这是一个非常简单的,但您应该在代码中以某种方式实现它:

Option Explicit

Public Sub TestMe()

    Dim rng As Range

    For Each rng In Range("A:A")
        If IsError(rng) Then Debug.Print rng.Address
    Next rng

End Sub