Wie kann man alle Treats in einer Excel-Datei durch Notizten ersetzen?

CA 0 Zuverlässigkeitspunkte
2025-11-22T09:42:06.4666667+00:00

Ich suche eine Lösung, um in meiner Excel-Liste, die mehrere Tabellenblätter hat, alle Kommentare/Threats in Notizen umzuwandeln, ohne jede einzelne Kommentare/Threats bearbeiten zu müssen.

Gibt es da eine Möglichkeit?

I´m looking for a solution to exchange all threats into notices in my excel file, which contains many sheets. Without processing each single threat. Is a simple solution available?

Microsoft 365 und Office | Excel | Andere | Windows
0 Kommentare Keine Kommentare

1 Antwort

Sortieren nach: Am hilfreichsten
  1. Francisco Montilla 30,725 Zuverlässigkeitspunkte Unabhängiger Berater
    2025-11-22T10:42:02.0266667+00:00

    Hallo

    In Excel gibt es keinen One-Click-Befehl, um alle threaded Kommentare in Legacy-Notizen über ein gesamtes Arbeitsheft umzuwandeln. Excel stellt nur eine eingebaute Konvertierung umgekehrt offen, indem Notizen in moderne threaded Kommentare umgewandelt werden, und das ist alles, was das gesamte Arbeitsbuch bietet.

    Mach ein Backup deiner Datei, speichere sie als.xlsm, drücke Alt+F11, Modul > einfügen, füge das darunterliegende Makro ein und drücke dann, F5 um es auszuführen.

    Es wird jedes Blatt durchgehen****, jeden threaded Kommentar aufnehmen, den Thread** in einfache Zeilen mit Autor und Datum abflachen**, eine Notiz in derselben Zelle **erstellen oder anhängen ** und den ursprünglichen Thread löschen. Der Code verwendet das offizielle Threaded Comments-Objektmodell, einschließlich Autor, Datum und Antworten, sowie das alte Kommentarobjekt für Notizen.

    Option Explicit
    
    Sub ConvertAllThreadedCommentsToNotes()
        Dim ws As Worksheet
        Dim i As Long
        Dim t As CommentThreaded
        Dim r As CommentThreaded
        Dim tgt As Range
        Dim body As String
        Dim c As Comment
        
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
        
        For Each ws In ActiveWorkbook.Worksheets
            For i = ws.CommentsThreaded.Count To 1 Step -1
                Set t = ws.CommentsThreaded.Item(i)
                On Error Resume Next
                Set tgt = t.Parent      'cell that owns this thread
                On Error GoTo 0
                If Not tgt Is Nothing Then
                    body = t.Author.Name & " " & CStr(t.Date) & " - " & t.Text
                    For Each r In t.Replies
                        body = body & vbCrLf & r.Author.Name & " " & CStr(r.Date) & " - " & r.Text
                    Next r
                    If tgt.Comment Is Nothing Then
                        Set c = tgt.AddComment
                        c.Visible = False
                        c.Text body
                    Else
                        tgt.Comment.Text Text:=tgt.Comment.Text & vbCrLf & body
                    End If
                    t.Delete
                End If
                Set tgt = Nothing
            Next i
        Next ws
        
        Application.DisplayAlerts = True
        Application.ScreenUpdating = True
    End Sub
    

    *Anmerkungen und Begrenzungen: Erwähnungen, Formatierungen und Bilder, die in gethreadten Kommentaren vorhanden sein können, können in *den Notizen nicht erhalten bleiben, ** da Anmerkungen einfache Textanmerkungen sind. Wenn eine Zelle bereits eine Notiz hat, fügt dieses Skript den Thread am Ende der bestehenden Notiz hinzu, damit du nichts verlierst. Wenn du ein anderes Zeilenformat bevorzugst, zum Beispiel Datum zuerst oder kein Autor, ändere die Zeichenkette, die du in der Variable aufbaust. body

    Wenn dir etwas Ungewöhnliches passiert, sag mir deine Excel-Version und ob die Datei auf OneDrive oder SharePoint liegt, und ich passe das Makro für dein Setup an.

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare

Ihre Antwort

Antworten können von Fragestellenden als „Angenommen“ und von Moderierenden als „Empfohlen“ gekennzeichnet werden, wodurch Benutzende wissen, dass diese Antwort das Problem des Fragestellenden gelöst hat.