Eine Familie von Microsoft-Tabellenkalkulationsprogrammen mit Tools zum Analysieren, Darstellen und Vermitteln von Daten.
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.