2016-05-04 8 views
-1

Ich habe Probleme mit dem unten stehenden Code, der genau das tut, was ich will, aber es überschreibt die Ergebnisse.VBA EXCEL: Loop überschreiben Ergebnisse

Es sucht nach dem Text "Debitor" und wenn es wahr ist, kopiert es.

Wenn es mehrere Ergebnisse findet, die es oft tut, überschreibt es die Ergebnisse.

Vielen Dank im Voraus.

Dim sht As Worksheet 
Dim LastRow As Long 

Set sht = ThisWorkbook.Worksheets("ark1") 

LastRow = sht.Cells(sht.Rows.Count, "B").End(xlUp).Row 

Do 
For x = 13 To 20 
     If autECLSession.autECLPS.GetTextRect(x, 26, x, 32) = "Debitor" Then 
      Range("B" & LastRow).Offset(1, 0).Value = Trim(autECLSession.autECLPS.GetTextRect(x, 9, x, 17)) 
     End If 
    Next 
    autECLSession.autECLPS.SendKeys "[pf8]" 
    autECLSession.autECLOIA.WaitForInputReady 
Loop Until autECLSession.autECLPS.GetTextRect(22, 2, 22, 36) = "EO0D0018A Der kan ikke bladres frem" 

Antwort

0

Sie nicht aktualisieren LastRow, so dass Sie am Ende in die gleiche Zelle zu schreiben immer wieder. Fügen Sie ein Inkrement wie folgt ein:

If autECLSession.autECLPS.GetTextRect(x, 26, x, 32) = "Debitor" Then 
     Range("B" & LastRow).Offset(1, 0).Value = Trim(autECLSession.autECLPS.GetTextRect(x, 9, x, 17)) 
     LastRow = LastRow + 1 
    End If 
+0

Danke, das hat mein Problem gelöst :) – Mehrdad