2016-07-21 7 views
0

Leider ist meine Kollegin momentan im Urlaub und ich sitze hier mit seinem VBA-Code, wobei ich immer die Laufzeit 13 Fehler triggere. Irgendeine Hilfe? Der Fehlercode ist mit **Excel VBA Laufzeitfehler Typ stimmt nicht überein 13

Function checkForMapping(sheetName As String, checkColumn As Integer, displayColumn As Integer, firstRow As Integer, text As String) As Boolean 

Worksheets(sheetName).Activate 

Dim lastRow As Long 
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 

Dim values As String 
Dim currentRow As Long 
Dim currentValue As String 


For currentRow = firstRow To lastRow Step 1 
    **If Not Round(Cells(currentRow, checkColumn), 1) = Round(1, 10) Then** 
     currentValue = Cells(currentRow, displayColumn) 
     If Not InStr(values, currentValue) > 0 Then 
      If Len(values) > 0 Then 
       values = values & ", " 
      End If 
      values = values & currentValue 
     End If 
    End If 
Next 

checkForMapping = (Len(values) > 0) 

If checkForMapping Then 
    result = MsgBox(text & " " & values, (vbOKOnly + vbInformation), "Info") 
End If 

Dank für jede Hilfe!

+0

Woher bekommst du den Fehler? Gehen Sie mit F8 durch und sagen Sie uns, welche Zeile hervorgehoben ist, wenn der Fehler auftritt. – Dave

+1

@Dave Er hat ein ** auf die Zeile gesetzt –

+0

Diese Fehlermeldung bedeutet normalerweise einen Datentyp nicht übereinstimmen, einen Haltepunkt platzieren, oder wenn die Anwendung bricht, Schritt durch , Sie werden sehen, wo der Fehler liegt ... –

Antwort

0

Sie vielleicht könnte die folgende Zeile vor hinzufügen:

If Not IsError(Cells(currentrow, checkcolumn)) Then

und dann in einem anderen

End If nach

+0

ist Danke! Es funktioniert jetzt! Ihr seid fantastisch! – Sven

+0

Keine Sorge, ganz bei Ihnen und ohne jeglichen Druck, aber da Sie SO neu sind, möchten Sie vielleicht eine Antwort markieren, wenn Sie Ihnen gegeben haben, was Sie brauchen. [This] (http://stackoverflow.com/help/someone-answers) wird weiter erklären. –

0

was bei Verwendung von halten erinnern:

If Left(Cells(currentRow, checkColumn).Value2, 1) <> "1" Then 
Verwandte Themen