2013-09-26 2 views
0

VBA를 사용하여 주석에서 빈 행을 삭제하는 방법을 찾고 있습니다. 빈 행을 포함하는 손상된 주석이있는 Excel 파일이 하나씩 있습니다. 옵션이 하나씩 있습니다.VBA를 사용하여 Excel에서 주석의 빈 행을 삭제하십시오.

코멘트에서 행을 편집하는 명령을 식별하지 못했고 어디서부터 시작해야할지 모르기 때문에 여러분에게 보여 줄 코드가 없습니다. 하지만 내 생각 엔 :

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

어쨌든 나를 도울 수 있기를 바랍니다.

편집 :

enter image description here

+0

Google에서 사용할 수있는 많은 미리 준비 코드가 있습니다. Google에 시도 했습니까? – Santosh

+0

물론 Google을 사용해 보았습니다! 하지만 아무것도 찾지 못했습니다. – andysando

답변

3

답변을 찾았습니다. 빈 행이 아닌 것 같습니다. 어떻게 든 변경된 메모의 크기 일뿐입니다. 그래서이 코드는 다음과 같이 수정했습니다 :

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 
1

enter image description here

당신이

을 시도 할 수처럼 댓글이 보이는 가정 : 내 모든 빈 줄은 다음과 같이 주석의 끝 부분에 있습니다
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 
당신이 당신의 질문을 편집하고 필자는 솔루션으로 다른 코드와 함께 올 제공된 세부 의미를 변경 한 후210

확인

enter image description here

업데이트를 달성했다. 시도해보십시오.

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 

+0

흠, 작동하지 않았습니다. 내 모든 빈 줄이 주석 끝 부분에 있습니다. 위의 편집 된 질문을 참조하십시오. – andysando

관련 문제