Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/AddComment в двумерный диапазон (желательно без цикла) - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » AddComment в двумерный диапазон (желательно без цикла)
AddComment в двумерный диапазон (желательно без цикла)
AlexM Дата: Пятница, 05.04.2013, 11:52 | Сообщение № 21
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4479
Репутация: 1114 ±
Замечаний: 0% ±

Excel 2003
Цитата (_Boroda_)
пропуская ячейки с уже вставленными примечаниями

Не будет ошибки при добавлении примечания, так как строка [vba]
Код
cl.AddComment
[/vba]будет пропущена, но закраска все равно будет.

Так лучше будет
[vba]
Код
Sub qqq()
On Error Resume Next
For Each cl In Range("A1:C5")
cl.AddComment
If Err = 0 Then cl.Comment.Shape.Fill.ForeColor.RGB = RGB(255, 0, 0)
Err.Clear
Next
End Sub
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Пятница, 05.04.2013, 12:00
 
Ответить
Сообщение
Цитата (_Boroda_)
пропуская ячейки с уже вставленными примечаниями

Не будет ошибки при добавлении примечания, так как строка [vba]
Код
cl.AddComment
[/vba]будет пропущена, но закраска все равно будет.

Так лучше будет
[vba]
Код
Sub qqq()
On Error Resume Next
For Each cl In Range("A1:C5")
cl.AddComment
If Err = 0 Then cl.Comment.Shape.Fill.ForeColor.RGB = RGB(255, 0, 0)
Err.Clear
Next
End Sub
[/vba]

Автор - AlexM
Дата добавления - 05.04.2013 в 11:52
_Boroda_ Дата: Пятница, 05.04.2013, 12:13 | Сообщение № 22
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16672
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Цитата (AlexM)
Не будет ошибки при добавлении примечания, так как строка

Правильно. Это я просто не тот макрос вставил.
Вот так надо было
[vba]
Код
Sub qqq()
On Error Resume Next
For Each cl In Range("A1:C5")
cl.AddComment.Shape.Fill.ForeColor.RGB = RGB(255, 0, 0)
Next
On Error GoTo 0
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Цитата (AlexM)
Не будет ошибки при добавлении примечания, так как строка

Правильно. Это я просто не тот макрос вставил.
Вот так надо было
[vba]
Код
Sub qqq()
On Error Resume Next
For Each cl In Range("A1:C5")
cl.AddComment.Shape.Fill.ForeColor.RGB = RGB(255, 0, 0)
Next
On Error GoTo 0
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 05.04.2013 в 12:13
AlexM Дата: Пятница, 05.04.2013, 12:26 | Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4479
Репутация: 1114 ±
Замечаний: 0% ±

Excel 2003
Осталось отличать примечания, созданные вручную или макросом.
Вариант с ":" & chr(10) наверно не очень подходящий.

Для чего строка нужна?[vba]
Код
On Error GoTo 0
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Пятница, 05.04.2013, 12:29
 
Ответить
СообщениеОсталось отличать примечания, созданные вручную или макросом.
Вариант с ":" & chr(10) наверно не очень подходящий.

Для чего строка нужна?[vba]
Код
On Error GoTo 0
[/vba]

Автор - AlexM
Дата добавления - 05.04.2013 в 12:26
Serge_007 Дата: Пятница, 05.04.2013, 12:32 | Сообщение № 24
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Всё, всем, спасибо, разобрался и понял почему вчера у меня не получалось
Вот что требовалось:
[vba]
Код
Sub Comm()
Range("A1:C5").ClearComments
For Each x In Range("A1:C5")
x.AddComment.Shape.Fill.ForeColor.RGB = RGB(255, 0, 0)
Next
End Sub
[/vba]

Но всё же, хотелось бы получить однозначный ответ, можно всё-таки это сделать без цикла?

ЗЫ Андрей, если тебе интересно откуда у этой темы "ноги растут", то разочарую тебя, ноги отсюда (см. пост #14): http://forum.msexcel.ru/index.php/topic,9221.0.html wink

ЗЫЗЫ
Цитата (AlexM)
Осталось отличать примечания, созданные вручную или макросом

Это уже реализовано smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВсё, всем, спасибо, разобрался и понял почему вчера у меня не получалось
Вот что требовалось:
[vba]
Код
Sub Comm()
Range("A1:C5").ClearComments
For Each x In Range("A1:C5")
x.AddComment.Shape.Fill.ForeColor.RGB = RGB(255, 0, 0)
Next
End Sub
[/vba]

Но всё же, хотелось бы получить однозначный ответ, можно всё-таки это сделать без цикла?

ЗЫ Андрей, если тебе интересно откуда у этой темы "ноги растут", то разочарую тебя, ноги отсюда (см. пост #14): http://forum.msexcel.ru/index.php/topic,9221.0.html wink

ЗЫЗЫ
Цитата (AlexM)
Осталось отличать примечания, созданные вручную или макросом

Это уже реализовано smile

Автор - Serge_007
Дата добавления - 05.04.2013 в 12:32
_Boroda_ Дата: Пятница, 05.04.2013, 12:44 | Сообщение № 25
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16672
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Цитата (AlexM)
Для чего строка нужна?

On Error GoTo 0

В данном конкретном макросе ни для чего.

Но я ВСЕГДА пишу пару
On Error Resume Next
и
On Error GoTo 0

Это уже автоматизм. Обработчик ошибок должен работать только там, где он нужен. И ни на строчку больше. Иначе могут быть неожиданности. В этом файле кто-то может дописать снизу еще свой кусок кода, для которого не нужен обработчик ошибок.
Типа если написал For i ..., то через строку вниз я СРАЗУ пишу Next i, а потом уже заполняю тело цикла между ними.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Цитата (AlexM)
Для чего строка нужна?

On Error GoTo 0

В данном конкретном макросе ни для чего.

Но я ВСЕГДА пишу пару
On Error Resume Next
и
On Error GoTo 0

Это уже автоматизм. Обработчик ошибок должен работать только там, где он нужен. И ни на строчку больше. Иначе могут быть неожиданности. В этом файле кто-то может дописать снизу еще свой кусок кода, для которого не нужен обработчик ошибок.
Типа если написал For i ..., то через строку вниз я СРАЗУ пишу Next i, а потом уже заполняю тело цикла между ними.

Автор - _Boroda_
Дата добавления - 05.04.2013 в 12:44
RAN Дата: Пятница, 05.04.2013, 13:26 | Сообщение № 26
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (Serge_007)
откуда у этой темы "ноги растут", то разочарую тебя

"А нам... мы волшебную косим трын-траву"
Используя тему по ссылке я решение нашел. biggrin


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата (Serge_007)
откуда у этой темы "ноги растут", то разочарую тебя

"А нам... мы волшебную косим трын-траву"
Используя тему по ссылке я решение нашел. biggrin

Автор - RAN
Дата добавления - 05.04.2013 в 13:26
Serge_007 Дата: Пятница, 05.04.2013, 13:51 | Сообщение № 27
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (RAN)
Используя тему по ссылке я решение нашел

Макрорекордер не пишет заливку примечаний, а копипаст я и сам написал, поэтому и просил без него smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (RAN)
Используя тему по ссылке я решение нашел

Макрорекордер не пишет заливку примечаний, а копипаст я и сам написал, поэтому и просил без него smile

Автор - Serge_007
Дата добавления - 05.04.2013 в 13:51
RAN Дата: Пятница, 05.04.2013, 13:53 | Сообщение № 28
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (Serge_007)
Макрорекордер не пишет заливку примечаний

А мне написал.
Это он тебя не любит. biggrin

Другое дело, что я не дожал до конца.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 05.04.2013, 13:55
 
Ответить
Сообщение
Цитата (Serge_007)
Макрорекордер не пишет заливку примечаний

А мне написал.
Это он тебя не любит. biggrin

Другое дело, что я не дожал до конца.

Автор - RAN
Дата добавления - 05.04.2013 в 13:53
Serge_007 Дата: Пятница, 05.04.2013, 14:01 | Сообщение № 29
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (RAN)
А мне написал

В 2010?!
Я несколько раз пробовал...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (RAN)
А мне написал

В 2010?!
Я несколько раз пробовал...

Автор - Serge_007
Дата добавления - 05.04.2013 в 14:01
RAN Дата: Пятница, 05.04.2013, 14:52 | Сообщение № 30
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (Serge_007)
В 2010?!

Неааа. Даже в 2007, где рекордер совсем кривой.

Вот из-под топора в 2010

[vba]
Код
Sub Макрос6()
' Макрос6 Макрос
     Range("C3").AddComment
     Range("C3").Comment.Visible = True
     Range("C3").Comment.Text Text:="OFIS:" & Chr(10) & ""
     Selection.ShapeRange.Fill.Visible = msoTrue
     Selection.ShapeRange.Fill.Solid
     Selection.ShapeRange.Fill.ForeColor.SchemeColor = 15
     Selection.ShapeRange.Fill.Transparency = 0#
     Selection.ShapeRange.Line.Weight = 0.75
     Selection.ShapeRange.Line.DashStyle = msoLineSolid
     Selection.ShapeRange.Line.Style = msoLineSingle
     Selection.ShapeRange.Line.Transparency = 0#
     Selection.ShapeRange.Line.Visible = msoTrue
     Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
     Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
     Range("C3").Select
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата (Serge_007)
В 2010?!

Неааа. Даже в 2007, где рекордер совсем кривой.

Вот из-под топора в 2010

[vba]
Код
Sub Макрос6()
' Макрос6 Макрос
     Range("C3").AddComment
     Range("C3").Comment.Visible = True
     Range("C3").Comment.Text Text:="OFIS:" & Chr(10) & ""
     Selection.ShapeRange.Fill.Visible = msoTrue
     Selection.ShapeRange.Fill.Solid
     Selection.ShapeRange.Fill.ForeColor.SchemeColor = 15
     Selection.ShapeRange.Fill.Transparency = 0#
     Selection.ShapeRange.Line.Weight = 0.75
     Selection.ShapeRange.Line.DashStyle = msoLineSolid
     Selection.ShapeRange.Line.Style = msoLineSingle
     Selection.ShapeRange.Line.Transparency = 0#
     Selection.ShapeRange.Line.Visible = msoTrue
     Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
     Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
     Range("C3").Select
End Sub
[/vba]

Автор - RAN
Дата добавления - 05.04.2013 в 14:52
AlexM Дата: Пятница, 05.04.2013, 17:37 | Сообщение № 31
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4479
Репутация: 1114 ±
Замечаний: 0% ±

Excel 2003
2003 Макрорекордер то же самое пишет



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение2003 Макрорекордер то же самое пишет

Автор - AlexM
Дата добавления - 05.04.2013 в 17:37
Serge_007 Дата: Пятница, 05.04.2013, 20:37 | Сообщение № 32
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Serge_007)
есть ли решение без цикла?

Судя по всему на этот вопрос ответ отрицательный, иначе хоть кто-нибудь да написал бы...
Всем спасибо, ловите плюсы smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Serge_007)
есть ли решение без цикла?

Судя по всему на этот вопрос ответ отрицательный, иначе хоть кто-нибудь да написал бы...
Всем спасибо, ловите плюсы smile

Автор - Serge_007
Дата добавления - 05.04.2013 в 20:37
The_Prist Дата: Пятница, 26.09.2014, 13:05 | Сообщение № 33
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
Ну уж ответим однозначно :-) без цикла нельзя вставить примечание в несколько ячеек.
По сути-то и сам Excel это сделать не может. Даже если выделить несколько ячеек и нажать "Создать примечание" - оно будет создано только в активной ячейке(не путать с выделенной - даже в выделенных ячейках всегда есть только одна активная).
И PasteSpecial внутренней реализацией делает все в цикле.


Errare humanum est, stultum est in errore perseverare
 
Ответить
СообщениеНу уж ответим однозначно :-) без цикла нельзя вставить примечание в несколько ячеек.
По сути-то и сам Excel это сделать не может. Даже если выделить несколько ячеек и нажать "Создать примечание" - оно будет создано только в активной ячейке(не путать с выделенной - даже в выделенных ячейках всегда есть только одна активная).
И PasteSpecial внутренней реализацией делает все в цикле.

Автор - The_Prist
Дата добавления - 26.09.2014 в 13:05
Serge_007 Дата: Суббота, 27.09.2014, 02:18 | Сообщение № 34
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
и сам Excel это сделать не может
Но если копировать примечание из ячейки и вставлять в диапазон, то может :)

PasteSpecial внутренней реализацией делает все в цикле
Ты точно знаешь? Есть где почитать источник этой информации? Я не нашел...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
и сам Excel это сделать не может
Но если копировать примечание из ячейки и вставлять в диапазон, то может :)

PasteSpecial внутренней реализацией делает все в цикле
Ты точно знаешь? Есть где почитать источник этой информации? Я не нашел...

Автор - Serge_007
Дата добавления - 27.09.2014 в 02:18
The_Prist Дата: Суббота, 27.09.2014, 16:39 | Сообщение № 35
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
Сергей, в С++ разбираешься? :-) В MSDN есть описание реализации различных методов и свойств, только все они реализованы кодами на С++, а не прописаны словами.


Errare humanum est, stultum est in errore perseverare
 
Ответить
СообщениеСергей, в С++ разбираешься? :-) В MSDN есть описание реализации различных методов и свойств, только все они реализованы кодами на С++, а не прописаны словами.

Автор - The_Prist
Дата добавления - 27.09.2014 в 16:39
Serge_007 Дата: Понедельник, 29.09.2014, 00:19 | Сообщение № 36
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Сергей, в С++ разбираешься?
Немного :)

Ок, спасибо!


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Сергей, в С++ разбираешься?
Немного :)

Ок, спасибо!

Автор - Serge_007
Дата добавления - 29.09.2014 в 00:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » AddComment в двумерный диапазон (желательно без цикла)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!