Страницы: 1
RSS
как удалить примечания(comments) в VBA
 
Уважаемые знатоки, всезнающие и еще познающие, прошу подсказать как удалить все примечания с листа excel?
почему-то мой код выдает ошибку. Код внизу. Прошу подсказать в чем ошибка.
Код
Sub delete_comments()
for each i in workbooks("Книга1").sheets("Лист1").comments
        i.clearnotes
next i
end sub

Sub delete_comments()
for i=1 to workbooks("Книга1").sheets("Лист1").comments.count
        workbooks("Книга1").sheets("Лист1").comments(I).clearnotes
next i
end sub

ВВерху два кода и оба не работают. Но если попробовать чуть изменить задачу(скажем, выводить в Immediate window текст примечаний, то все работает). Что не так?
Изменено: AyvazovRuslan - 22.07.2018 11:52:30
 
Попробуйте записать макрорекодером. Потом можно удалить лишнее.
 
так делал уже. но мне интересно где в моем коде ошибка.
 
Код
ActiveSheet.UsedRange.ClearComments
 
А если я хочу удалить все примечания начиная с 3 примечания? то есть первые два я не хочу удалять. тогда мне нужен цикл.
 
Вы об этом не писали. Как Вы определите "первые два"? У For Each своя логика, порядок перебора не всегда такой, как Вам хочется.

В цикле можно перебирать ячейки диапазона, а не коллекцию комментариев.
Код
Sub delete_comments()
Dim i As Range
     For Each i In ActiveSheet.UsedRange
         i.ClearNotes
     Next i
End Sub
 
Код
Dim iCmt As Comment
With Workbooks("Книга1").Sheets("Лист1")
    For Each iCmt In .Comments
        'если примечание НЕ в ячейке A1 или A2, то удаляем
        If Intersect(.Range("A1:A2"), iCmt.Parent) Is Nothing Then iCmt.Delete
    Next
End With
Согласие есть продукт при полном непротивлении сторон
 
благодарю
Страницы: 1
Наверх