|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2007 - Формула в примечание Excel |
|
|
2007 - Формула в примечание Excel
|
Старожил Сообщения: 287 |
Профиль | Отправить PM | Цитировать Здравствуйте,
Можно ли получить результат вычисления формулы в примечании к ячейке? Конкретизирую, - нужно разделить значение ячейки A1 на "N" (N - целое число) и результат вычисления отобразить в примечании к этой же ячейке. Синтаксис оператора, в частности для деления, есть здесь: http://msdn.microsoft.com/ru-ru/library/25bswc76.aspx На некоторых форумах предлагается осуществить вычисление в отдельной ячейке с последующим переносом результата в примечание, но если VBA сам осуществляет вычисления, зачем прибегать к помощи вспомогательной ячейки? |
|
Отправлено: 17:11, 21-11-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Откуда будет браться значение N?
|
Отправлено: 18:11, 21-11-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Модератор Сообщения: 16844
|
Профиль | Сайт | Отправить PM | Цитировать В модуль нужного листа
Private Sub Worksheet_Change(ByVal Target As Range) With Application .EnableEvents = False .ScreenUpdating = False End With If Not IsEmpty(Target.Value) Then With Target If Target.Comment Is Nothing Then .AddComment ' получение значения "comtext" в ваших руках - формула в скобках любая. '----------------------------------------- comtext = CStr(.Value / 2) '----------------------------------------- .Comment.Text Text:=comtext ' чтобы коммент был виден, раскомментируйте строчку ниже ' .Comment.Visible = True End With ' форматирование комментария '-------------------------------------------- With Target.Comment.Shape.TextFrame .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .ReadingOrder = xlContext .AutoSize = True .Characters.Font.FontStyle = "полужирный" .Characters.Font.Size = 9 End With '-------------------------------------------- End If With Application .EnableEvents = True .ScreenUpdating = True End With End Sub |
------- Последний раз редактировалось okshef, 22-11-2012 в 08:34. Отправлено: 21:15, 21-11-2012 | #3 |
Старожил Сообщения: 287
|
Профиль | Отправить PM | Цитировать Что вводить вместо Target и Value?
|
------- Отправлено: 12:15, 22-11-2012 | #4 |
Модератор Сообщения: 16844
|
Профиль | Сайт | Отправить PM | Цитировать Ничего - это переменные
|
|
------- Отправлено: 12:16, 22-11-2012 | #5 |
Старожил Сообщения: 287
|
Профиль | Отправить PM | Цитировать Но у меня одна переменная - значение ячейки A1 (либо диапазона ячеек, либо любой ячейки листа). Дело в том, что при компиляции выскакивает ошибка, пытался вводить нужную ячейку в формате "A1" вместо "Target.Value", - прошло, но вот дальше, где "Target.Comment" - выдаёт ошибку.
Реализовал вот так (пока только для одной ячейки A1; N=10): Sub Name() Worksheets(1).Range("A1").Comment.Text Text:=CStr(Range("A1") / 10) End Sub Воспользовался приведённой Вами командой Cstr. Чем принципиально отличается Ваш код от моего? Теперь возник вопрос: при сохранениии документа (с макросом), просит внести какие-то изменения в настройках, кто знает, где? |
------- Последний раз редактировалось okshef, 22-11-2012 в 18:05. Отправлено: 14:25, 22-11-2012 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Michael Mikhail:
|
|
Отправлено: 15:11, 22-11-2012 | #7 |
Старожил Сообщения: 287
|
Профиль | Отправить PM | Цитировать Теперь уже и не помню (закрыл без сохранения); видимо при следующем входе надо макросы подключать в настройках ("Параметры Excel"→"Центр управления безопасностью"→"Параметры центра управления безопасностью"→"Параметры макросов").
|
------- Отправлено: 16:16, 22-11-2012 | #8 |
Модератор Сообщения: 16844
|
Профиль | Сайт | Отправить PM | Цитировать Michael Mikhail, начиная с Office 2007 книги с макросами нужно сохранять в формате "... с поддержкой макросов". В "Центре управления безопасности нужно разрешить выполнение макросов" (выбирайте на свой вкус). Теперь по коду.
Target - Определяем выделенную ячейку Цитата Michael Mikhail:
If Not IsEmpty(Target.Value) And Not Application.Intersect(Target, Range("A1:C10")) Is Nothing Then В данном примере комментарии будут добавляться, если будут меняться значения в ячейках диапазона "A1:C10". Дальше понятно? Цитата Michael Mikhail:
Отличие моего кода - в форматировании примечания и в некоторых командах, которые ускоряют работу, например, функции листа не пересчитываются (в коде же есть пояснения). |
||
------- Последний раз редактировалось okshef, 22-11-2012 в 23:07. Отправлено: 18:19, 22-11-2012 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата okshef:
|
|
Отправлено: 19:43, 22-11-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - формула в шаблоне Excel | Busla | Microsoft Office (Word, Excel, Outlook и т.д.) | 2 | 14-09-2011 12:33 | |
Java - Вычислительная формула | Opium___ | Программирование и базы данных | 0 | 07-12-2010 11:10 | |
Разное - [решено] Одна и та же формула считает по разному в Excel и PHP | Artem-Samsung | Программирование и базы данных | 1 | 21-10-2010 18:39 |
|