Ich habe einen Code, der nach etwas aus dem Masterblatt in Spalte D wie "1x täglich" oder "2x Monat" (sowie andere) sucht. Wenn die Zelle mit einem Blattnamen übereinstimmt, wird sie in dieses Blatt eingefügt. Das Problem ist, dass jede Zeile vom Masterblatt eindeutig ist und daher nicht auf jedem Blatt wiederholt werden kann. Jedes Mal, wenn ich den Code ausführen, fügt es die Zeilen wieder, so dass ich am Ende mit so etwas wie dieseKompilierfehler: Etikett nicht definiert
Coubourn, Stephen | A | 201 | Q4hours Eudy, Donna | A | 202 | Q4hours Pott, Betty | A | 203 | Q4hours Coubourn, Stephen | A | 201 | Q4hours Eudy, Donna | A | 202 | Q4hours Potts, Betty | A | 203 | Q4hours Coubourn, Stephen | A | 201 | Q4hours Eudy, Donna | A | 202 | Q4hours Potts, Betty | A | 203 | Q4hours
Unten ist, was ich bisher für diesen Code habe ich versuche zu machen, aber es funktioniert nicht. Im Empfang die Fehlermeldung "Fehler Kompilieren, Label nicht definiert" auf der Linie, die "On Error GoTo SetFirst", sagt
Dim cell As Range
Dim cmt As Comment
Dim bolFound As Boolean
Dim sheetNames() As String
Dim lngItem As Long, lngLastRow As Long
Dim sht As Worksheet, shtMaster As Worksheet
Dim MatchRow As Variant
Set shtMaster = ThisWorkbook.Worksheets("Master Vitals Data")
ReDim sheetNames(0)
For Each sht In ThisWorkbook.Worksheets
If sht.Name <> shtMaster.Name Then
sheetNames(UBound(sheetNames)) = sht.Name
ReDim Preserve sheetNames(UBound(sheetNames) + 1)
End If
Next sht
ReDim Preserve sheetNames(UBound(sheetNames) - 1)
For Each cell In shtMaster.Range("D1:D" & shtMaster.Cells(shtMaster.Rows.Count, "D").End(xlUp).Row)
bolFound = False
MatchRow = Application.Match(cell.Offset(, -3).Value, sht.Range("A:A"), 0)
If Not IsError(MatchRow) Then
shtMaster.Rows(cell.Row).EntireRow.Copy Destination:=sht.Cells(MatchRow, 1)
Else
On Error GoTo SetFirst
lngLastRow = sht.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
On Error GoTo 0
shtMaster.Rows(cell.Row).EntireRow.Copy Destination:=sht.Cells(lngLastRow, 1)
End If
If bolFound = False Then
For Each cmt In shtMaster.Comments
If cmt.Parent.Address = cell.Address Then cmt.Delete
Next cmt
cell.AddComment "no sheet found for this row"
ActiveSheet.EnableCalculation = False
ActiveSheet.EnableCalculation = True
End If
Set sht = Nothing
Next
End Sub
Kompilierung schlägt fehl, da offensichtlich keine Bezeichnung SetFirst vorhanden ist. Wohin soll die Ausführung gehen, wenn der Fehler in der Zeile zwischen "On Error GoToFirst" und "On Error Go Too" auftritt? – Alexey
Ich bin mir nicht sicher, ich bin brandneu. Hast du einen Vorschlag? –
Ich werde wahrscheinlich vorschlagen, wenn Sie erklären könnten, was genau Ihr Code tun sollte. Was ist der Zweck all dieser Subroutine? Außerdem ist Ihr Code nicht vollständig, er beginnt mit "Dim ..." sollte aber mit 'Sub beginnen ...' – Alexey