使用VBA在Excel中删除注释中的空行

我正在寻找一种方法来删除使用VBA注释中的空行。 我有一个Excel文件,加载了损坏的注释,包含空行,并且逐个浏览它们不是一个选项。

我还没有确定在注释中编辑行的命令,不知道从哪里开始,所以我没有任何代码来显示你们。 但是我正在想:

For Each comment In ActiveSheet.Comments "REMOVE EMPTY ROWS" <-- What to put here? Next comment 

无论如何,希望你能帮助我!

编辑:我所有的空行是在这样的评论结束:

在这里输入图像说明

我find了答案。 它似乎不是空行,它只是在某种程度上被改变的评论的大小。 所以这个代码解决了它:

 Sub Comments_AutoSize() Dim MyComments As Comment Dim lArea As Long For Each MyComments In ActiveSheet.Comments With MyComments .Shape.TextFrame.AutoSize = True If .Shape.Width > 300 Then lArea = .Shape.Width * .Shape.Height .Shape.Width = 200 .Shape.Height = (lArea / 200) * 1.1 End If End With Next End Sub 

假设你的评论看起来像这样

在这里输入图像说明

你可以试试这个

 Sub RemoveEmptyLinesInComments() Dim c As Comment For Each c In ActiveSheet.Comments c.Text Text:=Replace(c.Text, vbLf, Chr(32)) Next c End Sub 

实现

在这里输入图像说明

更新

好的,在你编辑你的问题之后,用所提供的细节改变了它的含义,我想出了另一个代码作为解决scheme。 尝试

 Sub RemoveEmptiesFromComments() Dim c As Comment For Each c In ActiveSheet.Comments Dim v As Variant v = Split(c.Text, Chr(32)) Dim i As Long, s As String For i = LBound(v) To UBound(v) - 1 s = s & Chr(32) & v(i) Next i Dim rng As Range Set rng = c.Parent c.Delete rng.AddComment Text:=s rng.Comment.Shape.TextFrame.AutoSize = True Next c End Sub