Ich habe an einem Makro gearbeitet, Archives: es wählt Zeilen mit dem richtigen Zellenwert aus und verschiebt sie auf eine andere Registerkarte (beim Löschen der Zeilen in der Registerkarte des Ursprungs).Makro wird nicht vollständig ausgeführt
Mein Makro funktionierte einwandfrei, aber ich entschied mich, meine Datei zu ändern und verschiedene neue Registerkarten zu haben. Wenn berechnet ich meine Makro in meiner neuen Tabs, und es funktioniert auf die richtigen Zeilen und löscht sie, aber nicht kopieren Sie sie nicht in meinem „Archiv Reiter“:
Sub Archive_Ongoing()
Test 2 : works for 2 arguments.
Dim xRg As Range
Dim xCell As Range
Dim I As Long
Dim J As Long
Dim K As Long
I = Worksheets("B90_Projects_OnGoing").UsedRange.Rows.Count
J = Worksheets("B90_Projects_Archived").UsedRange.Rows.Count
If J = 1 Then
If Application.WorksheetFunction.CountA(Worksheets("B90_Projects_Archived").UsedRange) = 0 Then J = 0
End If
Set xRg = Worksheets("B90_Projects_OnGoing").Range("O1:O" & I)
Set yRg = Worksheets("B90_Projects_OnGoing").Range("T1:T" & I)
On Error Resume Next
Application.ScreenUpdating = False
For K = 1 To xRg.Count
If CStr(xRg(K).Value) = "Closed" And CStr(yRg(K).Value) <> "" Then
xRg(K).Selection.Copy Destination:=Worksheets("B90_Projects_Archived").Range("A" & J + 1)
xRg(K).EntireRow.Delete
If CStr(xRg(K).Value) = "Closed" Then
K = K - 1
End If
J = J + 1
End If
Next
Application.ScreenUpdating = True
End Sub'
Jeder wäre in der Lage zu erklären, warum?
'xRG (K) .Selection.Copy Ziel: = Arbeitsblätter ("B90_Projects_Archived"). Range ("A" & J + 1) 'versucht eine Auswahl zu kopieren und Sie haben nichts in Ihrem Code ausgewählt ... Außer Sie sind es manuell auswählen und dann das Makro ausführen? – Maldred
Entfernen Sie 'On Error Resume Next' und Debuggen Sie Ihren Code Zeile für Zeile, Sie werden sehr schnell ** herausfinden, was Ihr Problem ist. Wenn Sie nicht lösen können, aktualisieren Sie Ihre Frage mit etwas spezifischer (d. H. - Zeile des Fehlers und was Sie versucht haben, Problem zu lösen). Sie müssen auch einen Bereich rückwärts durchlaufen, wenn Sie auch Zeilen aus dem Bereich löschen. –
diese Zeile 'xRg (K) .Selection.Copy ....' löst Fehler 438 aus .... Ihr Code kann daher möglicherweise nicht funktionieren – jsotola