Ich versuche ein Makro zu erstellen, dass, wenn eine Informationszeile zu einem meiner Blätter hinzugefügt wird, diese Zeile automatisch zu einem anderen Blatt (in derselben Arbeitsmappe) hinzugefügt wird. Ich habe ausführlich Online recherchiert und fand diesen Code, den ich denke, das tut, was ich will, nachdem ich es ein wenig gezwickt:Wie behebt man Kompilierfehler: erwartet End Sub?
Sub addrow()
Public Sub worksheet_change(ByVal target As Range)
Set sourcebook = ThisWorkbook
Set sourcesheet = sourcebook.Worksheets("sheet1")
Set targetbook = ThisWorkbook
Set targetsheet = targetbook.Worksheets("sheet10")
If sourcesheet.Cells(198, 16).Value = "Auto" Or _
sourcesheet.Cells(198, 16).Value = "Connect" Or _
sourcesheet.Cells(198, 16).Value = "Multiple*" Or _
sourcesheet.Cells(198, 16).Value = "Property" Or _
sourcesheet.Cells(198, 16).Value = "Umbrella" Or _
sourcesheet.Cells(198, 16).Value = "WC" Then
GoTo link
Else
GoTo insertion
End If
insertion: targetsheet.Activate
ActiveSheet.Rows(198).EntireRow.Insert
sourcesheet.Activate
link:
'targetsheet.Cells(194, targetsheet.Range("initial response").Column) = sourcesheet.Cells(198, 16).Value
targetsheet.Cells(194, 16) = sourcesheet.Cells(198, 16).Value
targetsheet.Cells(194, 16) = sourcesheet.Cells(198, 16).Value
End Sub
Wenn ich versuche, den Code auszuführen, erhalte ich die Fehlermeldung „Fehler beim Kompilieren: Expected End Sub "und es hebt die erste Codezeile hervor - Sub addrow(). Wenn ich versuche, diese Zeile herauszunehmen, verlangt VBA, dass ich ein neues Makro erstelle, wenn ich es versuche und ausführe, das dann diese Zeile wieder hinzufügt, und ich bin zurück auf Platz eins.
Sie haben Sub addrow() und dann sofort Public Sub Worksheet_Change (ByVal Ziel als Strecke) - Subroutinen nicht überlappen können, und jedes Sub sollte ein passendes End Sub hat, damit diese Fehler. Entfernen Sie entweder Sub addrow() und vergewissern Sie sich, dass workhett_change() tatsächlich verwendbar ist, oder wenn Sie das Makro manuell ausführen, entfernen Sie die Zeile workheet_change(), behalten Sie aber sub addrow() bei. Ich hoffe, das hilft. S.S .: bitte keine ALL CAPS in Nachrichten. – Levon