VBA - Zuweisen von Makros zu Formularsteuerungsschaltflächen

559
Lenny

Ich habe den folgenden Code in VBA geschrieben, um vollständige Zeilen zu löschen, wenn in Spalte U von Sheet21 (eigentlich "ROG Registration" genannt), wenn "Self Canceled" oder "Waitlisted" angezeigt wird. Wenn ich auf der Registerkarte ROG Registration bin und das VBA-Fenster geöffnet ist, funktioniert es einwandfrei.

Ich habe eine separate Registerkarte mit Makro-Schaltflächen und ich habe dieses Makro der Formularsteuerungsschaltfläche zugewiesen. Wenn ich jedoch auf die Schaltfläche klicke, geschieht nichts.

Irgendeine Idee warum? Könnte es sein, dass ich im Code den Namen "ROG Registration" verwenden muss? ".Wählen Sie" die Registerkarte zuerst aus, da sie sich auf einer anderen Registerkarte befindet als die Schaltfläche?

Sub ROG_DeleteRows()  Dim r As Integer For r = Sheet21.UsedRange.Rows.Count To 1 Step -1 If Cells(r, "U") = "Self Cancelled" Then Sheet21.Rows(r).EntireRow.Delete ElseIf Cells(r, "U") = "Waitlisted" Then Sheet21.Rows(r).EntireRow.Delete End If Next  End Sub 
0
Sie müssen das Blatt jedes Mal angeben: `Wenn Sheet21.Cells (r," U ") = ...` Andernfalls wird standardmäßig das aktive Blatt (dh die mit den Schaltflächen) verwendet cybernetic.nomad vor 5 Jahren 0
@ cybernetic.nomad es funktionierte perfekt. Vielen Dank!!! Ich dachte, das könnte das Problem sein, aber ich war nicht sicher, wo ich bearbeiten sollte (ich bin relativ neu in VBA). Lenny vor 5 Jahren 0
@Lenny ,, Sie sollten dies schreiben ** If Sheet21.Cells (r, "U") = "Self Canceled" Dann ** anstelle von ** If Cells (r, "U") = "Self Canceled" Then ** . Rajesh S vor 5 Jahren 0

0 Antworten auf die Frage