2017-07-17 37 views
0

私はVBAコーディングとマッチコードの作業に新しいです。コードは "データシート"(すべてのデータがあり、一致が見つかっていなければならない)のコードを実行するとうまく動作しますが、フロントページ(シート1のuserforms )コードはdebuggenであり、 "ランタイムエラー13"と表示されます。誰が問題が何であるか教えていただけますか?ランタイムエラー13 - 不一致

誰かが私の「If isError」が機能しない理由を教えていただけますか?

ありがとうございます!

Brで

'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 
+0

どのラインでエラーが発生しますか? – Vityata

+0

申し訳ありません。 'icol = [Sheet13.MATCH(XFD2&XFD3、A:A&Q:Q、0)] 'SKUのテストに合致するようにするには – broder123

+0

'icol'を' Integer'と宣言し、 '[Sheet13 .MATCH(XFD2&XFD3、A:A&Q:Q、0)] 'は整数ではないので、['型の不一致(エラー13) '](https://msdn.microsoft.com/en-us) /library/aa264979(v=vs.60).aspx) – Tehscript

答えて

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については間違っています。私は、あなたが最初の列のすべてのセルをループし、それらのうちの1つがエラーかどうかを知りたいと思います。これにはループが必要です。これは本当にシンプルなものですが、コードに何らかの形で実装する必要があります。

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 
+0

icol = Application.Match( "XFD2"& "XFD3"、 "A:A"& "Q:Q"、0)を使用すると、コードが次のようにデバッグされます。エラー13をこの行にもう一度入力します。.Cells(icol、30).Value = Me.ComboBox3.Value – broder123

+0

@ broder123あなたの数式には2つの重要なエラーがあります。 MSDNリンクをもう一度読んで、それを複製しようとします。 'icol = Application.Match(Range(" A2 ")、range(" B:B ")、0)' – Vityata

+0

あなたはerrrosを指摘できますか?私はそれらを見つけることを試みたが、このコードを理解することはできません... – broder123

関連する問題