Excel VBA将旧注释转为Threaded Comments时修改作者报错如何解决
报错原因
- Excel VBA 中的
CommentThreaded.Author属于只读属性,仅支持读取当前线程注释的作者信息,不允许创建完成后直接修改,这是你触发报错的核心原因。
解决方案
不需要创建线程注释后再修改作者,直接在调用AddCommentThreaded方法时传入第二个可选的Author参数即可在创建阶段直接指定作者,修改后的代码如下:
Public Sub Convert_Notes_to_Comments() Dim rng As Range, cell As Range Dim CommentText As String, cleanedText As String, commentAuthor As String, newComment As CommentThreaded Set rng = Selection For Each cell In rng If Not cell.Comment Is Nothing Then CommentText = cell.Comment.Text commentAuthor = cell.Comment.Author cleanedText = Replace(CommentText, commentAuthor & ":", "") cell.Comment.Delete ' 直接在创建时指定作者,无需后续赋值 Set newComment = cell.AddCommentThreaded(cleanedText, commentAuthor) End If Next cell End Sub
补充说明
- 该方法仅适用于支持线程注释的Excel版本(Office 365、Office 2021及以上订阅版本),低版本Excel运行会抛出方法不存在的错误。
- 如果传入的作者名和当前Office登录账户的名称不匹配,线程注释会显示你传入的自定义作者名,不会强制替换为登录账户信息。
内容的提问来源于stack exchange,提问作者Dumitru Daniel
相关产品推荐
相关产品推荐

