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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » AddComment в двумерный диапазон (желательно без цикла)
AddComment в двумерный диапазон (желательно без цикла)
Serge_007 Дата: Четверг, 04.04.2013, 16:51 | Сообщение № 1
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Всем привет

Как добавить примечания в диапазон (например A1:C5)
Если есть возможность сделать это без цикла, то было бы вообще здорово smile

Пока я только до вот этого додумался:
[vba]
Код
Sub Comm()
   For Num = 1 To 5
    Range("A" & Num).AddComment
   Next
End Sub
[/vba]
Но , как понятно из кода, заполняется только одномерный диапазон

Спасибо


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВсем привет

Как добавить примечания в диапазон (например A1:C5)
Если есть возможность сделать это без цикла, то было бы вообще здорово smile

Пока я только до вот этого додумался:
[vba]
Код
Sub Comm()
   For Num = 1 To 5
    Range("A" & Num).AddComment
   Next
End Sub
[/vba]
Но , как понятно из кода, заполняется только одномерный диапазон

Спасибо

Автор - Serge_007
Дата добавления - 04.04.2013 в 16:51
AlexM Дата: Четверг, 04.04.2013, 20:26 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4480
Репутация: 1114 ±
Замечаний: 0% ±

Excel 2003
Одинаковое примечание так
[vba]
Код
Sub Макрос()
Range("A1").AddComment
Range("A1").Copy
Range("A1:C5").PasteSpecial (xlPasteComments)
End Sub
[/vba]



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


Сообщение отредактировал AlexM - Четверг, 04.04.2013, 20:27
 
Ответить
СообщениеОдинаковое примечание так
[vba]
Код
Sub Макрос()
Range("A1").AddComment
Range("A1").Copy
Range("A1:C5").PasteSpecial (xlPasteComments)
End Sub
[/vba]

Автор - AlexM
Дата добавления - 04.04.2013 в 20:26
nerv Дата: Четверг, 04.04.2013, 22:29 | Сообщение № 3
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

вариант с циклом

[vba]
Код
Sub io()
     ' first use
     Call AddComments(Range("A1:A5"), "Text")
      
     ' second use
     Call AddComments(Range("G1:H2"), Array(1, 2, 3, 4))
End Sub

Private Sub AddComments(ByRef Rng As Range, _
                         ByRef Comments As Variant)
     Dim Index As Integer
     Dim Cell As Range
     For Each Cell In Rng.Cells
         If IsArray(Comments) Then
             Cell.AddComment CStr(Comments(Index))
             Index = Index + 1
         Else
             Cell.AddComment CStr(Comments)
         End If
     Next
End Sub
[/vba]


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщениевариант с циклом

[vba]
Код
Sub io()
     ' first use
     Call AddComments(Range("A1:A5"), "Text")
      
     ' second use
     Call AddComments(Range("G1:H2"), Array(1, 2, 3, 4))
End Sub

Private Sub AddComments(ByRef Rng As Range, _
                         ByRef Comments As Variant)
     Dim Index As Integer
     Dim Cell As Range
     For Each Cell In Rng.Cells
         If IsArray(Comments) Then
             Cell.AddComment CStr(Comments(Index))
             Index = Index + 1
         Else
             Cell.AddComment CStr(Comments)
         End If
     Next
End Sub
[/vba]

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

Excel 2016
Алекс, мне надо вставить пустое примечание, не прибегая к копированию данных с листа (обрати внимание на мой код в топике)
Саш, почти то что нужно, но сделать что бы примечание вставлялось пустым, в твоём коде у меня не получается...

Спасибо за варианты


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеАлекс, мне надо вставить пустое примечание, не прибегая к копированию данных с листа (обрати внимание на мой код в топике)
Саш, почти то что нужно, но сделать что бы примечание вставлялось пустым, в твоём коде у меня не получается...

Спасибо за варианты

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

2010
Не стал выкладывать, ты без цикла просил.
[vba]
Код
Sub qqq()
For Each cl In Range("A1:C5")
cl.AddComment
Next
End Sub
[/vba]


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

Сообщение отредактировал RAN - Пятница, 05.04.2013, 00:25
 
Ответить
СообщениеНе стал выкладывать, ты без цикла просил.
[vba]
Код
Sub qqq()
For Each cl In Range("A1:C5")
cl.AddComment
Next
End Sub
[/vba]

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

Excel 2016
Супер!
Ругается, если в диапазоне уже есть примечания, но это я сам поправлю, знаю как, спасибо!

Цитата (RAN)
ты без цикла просил

Цитата (Serge_007)
Если есть возможность сделать это без цикла, то было бы вообще здорово

Есть такая возможность?

И как сделать, вставляемые этим макросом примечания, отличными от других, которые поставили вручную?
Например что бы у них цвет заливки другой был?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеСупер!
Ругается, если в диапазоне уже есть примечания, но это я сам поправлю, знаю как, спасибо!

Цитата (RAN)
ты без цикла просил

Цитата (Serge_007)
Если есть возможность сделать это без цикла, то было бы вообще здорово

Есть такая возможность?

И как сделать, вставляемые этим макросом примечания, отличными от других, которые поставили вручную?
Например что бы у них цвет заливки другой был?

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

2010
Серег, ты чтой-то запарил.
Код Алекса - копировать, специальная вставка - примечания.
При чем тут данные или форматы? Чем не подходит?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСерег, ты чтой-то запарил.
Код Алекса - копировать, специальная вставка - примечания.
При чем тут данные или форматы? Чем не подходит?

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

Excel 2016
Я ж написал - копировать ничего с листа нельзя


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЯ ж написал - копировать ничего с листа нельзя

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

2010
С листа этой книги или совсем ничего? Если с листа, то
[vba]
Код
Sub qqq()
     On Error Resume Next
     Cells.ClearComments
     Workbooks("Personal.xlsb").Sheets(1).Range("A1").AddComment
     Workbooks("Personal.xlsb").Sheets(1).Range("A1").Copy
     Range("A1:C5").PasteSpecial (xlPasteComments)
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеС листа этой книги или совсем ничего? Если с листа, то
[vba]
Код
Sub qqq()
     On Error Resume Next
     Cells.ClearComments
     Workbooks("Personal.xlsb").Sheets(1).Range("A1").AddComment
     Workbooks("Personal.xlsb").Sheets(1).Range("A1").Copy
     Range("A1:C5").PasteSpecial (xlPasteComments)
End Sub
[/vba]

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

Excel 2016
Цитата (RAN)
совсем ничего?

Да, совсем ничего.
Надстроек нет, персонала нет, других книг нет, в этой книге один лист, с него копировать нельзя

ЗЫ И Cells.ClearComments не пойдёт, на листе есть и другие примечания
Цитата (Serge_007)
как сделать, вставляемые этим макросом примечания, отличными от других, которые поставили вручную?


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

Да, совсем ничего.
Надстроек нет, персонала нет, других книг нет, в этой книге один лист, с него копировать нельзя

ЗЫ И Cells.ClearComments не пойдёт, на листе есть и другие примечания
Цитата (Serge_007)
как сделать, вставляемые этим макросом примечания, отличными от других, которые поставили вручную?

Автор - Serge_007
Дата добавления - 05.04.2013 в 01:33
nerv Дата: Пятница, 05.04.2013, 02:26 | Сообщение № 11
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Цитата (Serge_007)
но сделать что бы примечание вставлялось пустым

[vba]
Код
Call AddComments(Range("A1:A5"), "")
[/vba]

Цитата (Serge_007)
ЗЫ И Cells.ClearComments не пойдёт

в моем коде после
[vba]
Код
Dim Cell As Range
[/vba]
допиши
[vba]
Код
Rng.ClearComments
[/vba]


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщение
Цитата (Serge_007)
но сделать что бы примечание вставлялось пустым

[vba]
Код
Call AddComments(Range("A1:A5"), "")
[/vba]

Цитата (Serge_007)
ЗЫ И Cells.ClearComments не пойдёт

в моем коде после
[vba]
Код
Dim Cell As Range
[/vba]
допиши
[vba]
Код
Rng.ClearComments
[/vba]

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

Excel 2003
Циклом вставлять примечания нельзя.
Copy в макросе - нельзя.
Интересная задача. smile



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЦиклом вставлять примечания нельзя.
Copy в макросе - нельзя.
Интересная задача. smile

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

Excel 2016
Цитата (AlexM)
Циклом вставлять примечания нельзя
Кто запретил?
Цитата (AlexM)
Copy в макросе - нельзя.
Нельзя
Цитата (AlexM)
Интересная задача
Вот и мне интересно, есть ли решение без цикла?
Судя по количеству таких ответов, без копирования и без цикла никак?

Можно же заполнить двумерный диапазон значениями типа так:
[vba]
Код
Range("A1:C5") = 1
[/vba]
А с примечаниями по аналогии можно?
У меня не получилось...

И как сделать визуальное отличие заливкой вставляемых макросом примечаний?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (AlexM)
Циклом вставлять примечания нельзя
Кто запретил?
Цитата (AlexM)
Copy в макросе - нельзя.
Нельзя
Цитата (AlexM)
Интересная задача
Вот и мне интересно, есть ли решение без цикла?
Судя по количеству таких ответов, без копирования и без цикла никак?

Можно же заполнить двумерный диапазон значениями типа так:
[vba]
Код
Range("A1:C5") = 1
[/vba]
А с примечаниями по аналогии можно?
У меня не получилось...

И как сделать визуальное отличие заливкой вставляемых макросом примечаний?

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

Excel 2003
Цитата (Serge_007)
визуальное отличие заливкой вставляемых макросом примечаний

Чтобы отличались по цвету от вставляемых вручную?
Цитата (Serge_007)
Кто запретил

В первом посте сказано, что желательно без цикла. С циклом просто, его RAN показал в 5-ом сообщении



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (Serge_007)
визуальное отличие заливкой вставляемых макросом примечаний

Чтобы отличались по цвету от вставляемых вручную?
Цитата (Serge_007)
Кто запретил

В первом посте сказано, что желательно без цикла. С циклом просто, его RAN показал в 5-ом сообщении

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

Excel 2016
Цитата (AlexM)
Чтобы отличались по цвету от вставляемых вручную?
Да
Цитата (AlexM)
желательно без цикла
Желательно <> Обязательно biggrin
Хочется, если это возможно, без цикла. Если такой возможности точно нет - то можно и циклом


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (AlexM)
Чтобы отличались по цвету от вставляемых вручную?
Да
Цитата (AlexM)
желательно без цикла
Желательно <> Обязательно biggrin
Хочется, если это возможно, без цикла. Если такой возможности точно нет - то можно и циклом

Автор - Serge_007
Дата добавления - 05.04.2013 в 10:16
AlexM Дата: Пятница, 05.04.2013, 10:44 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4480
Репутация: 1114 ±
Замечаний: 0% ±

Excel 2003
[vba]
Код
Sub Add_Comment()
On Error Resume Next
For Each cl In Range("A1:C5")
cl.AddComment
cl.Interior.ColorIndex = IIf(InStr(cl.Comment.Text, ":" & Chr(10)), 34, 36)
Next
End Sub
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение[vba]
Код
Sub Add_Comment()
On Error Resume Next
For Each cl In Range("A1:C5")
cl.AddComment
cl.Interior.ColorIndex = IIf(InStr(cl.Comment.Text, ":" & Chr(10)), 34, 36)
Next
End Sub
[/vba]

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

Excel 2016
Алекс, что бы ПРИМЕЧАНИЯ отличались по цвету, а не ячейки smile
Цитата (Serge_007)
И как сделать, вставляемые этим макросом примечания, отличными от других, которые поставили вручную?
Например что бы у них цвет заливки другой был?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеАлекс, что бы ПРИМЕЧАНИЯ отличались по цвету, а не ячейки smile
Цитата (Serge_007)
И как сделать, вставляемые этим макросом примечания, отличными от других, которые поставили вручную?
Например что бы у них цвет заливки другой был?

Автор - Serge_007
Дата добавления - 05.04.2013 в 10:52
AlexM Дата: Пятница, 05.04.2013, 11:32 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4480
Репутация: 1114 ±
Замечаний: 0% ±

Excel 2003
Тогда надо примечания, создаваемые вручную делать отличающимися по цвету заливки.
Макрос будет создавать с цветом по умолчанию.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеТогда надо примечания, создаваемые вручную делать отличающимися по цвету заливки.
Макрос будет создавать с цветом по умолчанию.

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

2003; 2007; 2010; 2013 RUS
Красненькие будут, пропуская ячейки с уже вставленными примечаниями, так вставить если
[vba]
Код
Sub qqq()
On Error Resume Next
For Each cl In Range("A1:C5")
cl.AddComment
cl.Comment.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
 
Ответить
СообщениеКрасненькие будут, пропуская ячейки с уже вставленными примечаниями, так вставить если
[vba]
Код
Sub qqq()
On Error Resume Next
For Each cl In Range("A1:C5")
cl.AddComment
cl.Comment.Shape.Fill.ForeColor.RGB = RGB(255, 0, 0)
Next
On Error GoTo 0
End Sub
[/vba]

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

2010
[vba]
Код
Sub qq()
       Dim cl As Range
       On Error Resume Next
       For Each cl In Range("A1:C5")
           With cl
               .ClearComment
               .AddComment
               .Comment.Visible = True
               .Comment.Shape.Select
               Selection.ShapeRange.Fill.ForeColor.SchemeColor = 7
           End With
       Next
End Sub
[/vba]

Ps Хороший вопрос Boroda задал, хороший ответ дал Serge, а главное - удачно в ту тему вчера спам поместили! biggrin


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

Сообщение отредактировал RAN - Пятница, 05.04.2013, 12:00
 
Ответить
Сообщение[vba]
Код
Sub qq()
       Dim cl As Range
       On Error Resume Next
       For Each cl In Range("A1:C5")
           With cl
               .ClearComment
               .AddComment
               .Comment.Visible = True
               .Comment.Shape.Select
               Selection.ShapeRange.Fill.ForeColor.SchemeColor = 7
           End With
       Next
End Sub
[/vba]

Ps Хороший вопрос Boroda задал, хороший ответ дал Serge, а главное - удачно в ту тему вчера спам поместили! biggrin

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

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