Добрый день!
Помогите, пожалуйста, необходимо написать скрипт на VBA с помощью которого в существующее примечание добовлялись бы новые данные выше предыдущего и при этом желательно с отличающимся цветом шрифта от предыдущих сообщений.
Заранее спасибо.
Excel VBA 2007 - добавление данных в существующее примечание
Модератор: Naeel Maqsudov
- mc-black
- Сообщения: 250
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
Насчет выделения цветом пока не знаю, как сделать, а вот этот макрос
Добавляет к каждому комментарию на первом листе с новой строки текст "qwerty". Проверял в Office 2003, поэтому не известно, будет ли работать в Office 2007.
Код: Выделить всё
Option Explicit
Sub AddComments()
Dim cmt As Comment
For Each cmt In ThisWorkbook.Worksheets(1).Comments
cmt.Text Chr(10) & "qwerty", Len(cmt.Text)
Next cmt
End Sub
На заказ: VBA, Excel mc-black@yandex.ru
Спасибо, все добавило и в 2007.
А можно как-нибудь реализовать чтобы текст вставлялся не в конец примечания, а в начало?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Попытался ее применить не ко всем примечаниям, а только к конкретному после чего выдало ошибку. Подскажите где я допустил ошибку.
Option Explicit
Function ChangeBankomat()
Dim iComment As Comment
'Добавляем комментарии
iComment = ThisWorkbook.Sheets(n_FilialsPosle).Cells(n_FindCity + 1, "G").Comments
iComment.Text "- перемещен по распоряжению №" & txtNumberDoc & " от " & txtDataDoc & Chr(10), 0
iComment.Shape.TextFrame.AutoSize = True
iComment.Shape.Height = iComment.Shape.Height + 10
iComment.Shape.Width = iComment.Shape.Width + 5
End Function
А можно как-нибудь реализовать чтобы текст вставлялся не в конец примечания, а в начало?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Попытался ее применить не ко всем примечаниям, а только к конкретному после чего выдало ошибку. Подскажите где я допустил ошибку.
Option Explicit
Function ChangeBankomat()
Dim iComment As Comment
'Добавляем комментарии
iComment = ThisWorkbook.Sheets(n_FilialsPosle).Cells(n_FindCity + 1, "G").Comments
iComment.Text "- перемещен по распоряжению №" & txtNumberDoc & " от " & txtDataDoc & Chr(10), 0
iComment.Shape.TextFrame.AutoSize = True
iComment.Shape.Height = iComment.Shape.Height + 10
iComment.Shape.Width = iComment.Shape.Width + 5
End Function
- mc-black
- Сообщения: 250
- Зарегистрирован: 08 май 2008, 16:09
- Откуда: Россия, Нижний Новгород
- Контактная информация:
А можно как-нибудь реализовать чтобы текст вставлялся не в конец примечания, а в начало?
Код: Выделить всё
cmt.Text "qwerty" & Chr(10), 0
Добавлено сообщение
--------------------------------------------------------------------------------
Подскажите где я допустил ошибку.
Код: Выделить всё
Set iComment = ThisWorkbook.Sheets(n_FilialsPosle).Cells(n_FindCity + 1, "G").Comments(1)
'...
Set iComment = Nothing
На заказ: VBA, Excel mc-black@yandex.ru
Спасибо, я поставил 0
А еще объясните как привязать это все к примечанию конкретной ячейки.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Пока писал уже ответили
. Спасибо, сейчас проверю
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Вот что получилось, но он меняет во всем примечании цвет, а нужно чтобы каждая строчка была своего цвета.
Set iComment = ThisWorkbook.Sheets(n_FilialsPosle).Cells(n_FindCity + 1, "G").Comment
With iComment
.Text "- перемещен по распоряжению №" & txtNumberDoc & " от " & txtDataDoc & iComment.Text
.Shape.TextFrame.Characters.Font.Color = 4
.Shape.TextFrame.AutoSize = True
.Shape.Height = iComment.Shape.Height + 10
.Shape.Width = iComment.Shape.Width + 5
End With
Set iComment = Nothing
А еще объясните как привязать это все к примечанию конкретной ячейки.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Пока писал уже ответили

--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Вот что получилось, но он меняет во всем примечании цвет, а нужно чтобы каждая строчка была своего цвета.
Set iComment = ThisWorkbook.Sheets(n_FilialsPosle).Cells(n_FindCity + 1, "G").Comment
With iComment
.Text "- перемещен по распоряжению №" & txtNumberDoc & " от " & txtDataDoc & iComment.Text
.Shape.TextFrame.Characters.Font.Color = 4
.Shape.TextFrame.AutoSize = True
.Shape.Height = iComment.Shape.Height + 10
.Shape.Width = iComment.Shape.Width + 5
End With
Set iComment = Nothing