powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Примечание
17 сообщений из 17, страница 1 из 1
Примечание
    #34665845
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пож-та, как с помощью встроенной в Excel функции (не макросом и не кодом) определить, есть ли в ячейке примечание? заранее спасибо за ответ
...
Рейтинг: 0 / 0
Примечание
    #34666178
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НастенькаСкажите пож-та, как с помощью встроенной в Excel функции (не макросом и не кодом) определить, есть ли в ячейке примечание? заранее спасибо за ответ

Никак, но можно сделать нечто среднее - Именованная формула + XLM4.0 (макрофункции)

- выбрать ячейку [B1]
- меню Вставка-Имя-Присвоить...
- имя: HasComment
- формула: =ПОЛУЧИТЬ.ЯЧЕЙКУ(46+ТДАТА()*0;Sheet1!A1)
- кнопка: Добавить
- кнопка: ОК

на листе непосредственно справа от анализируемой ячейки:
=HasComment

Внимание:
1) Добавление или удаление примечания не вызывает события пересчета формул. Поэтому ни одно решение не даст возможности получения результата в реальном времени. Если примечание было удалено или добавлено, то формула отразит это лишь при следующем пересчете.

2) Для того, чтобы формула пересчитывала при первом же удачном случае, делаем ее летучей с помощью +ТДАТА()*0

3) !!! Если версия твоего Excel 2000 или более ранняя, то ячейки с формулами, содержащими имена использующие макрофункции XLM, нельзя копировать на другие листы, т.к. это вызовет аварийное закрытие Excel с потерей несохраненных изменений. Вместо копирования ячейки нужно использовать ввод формулы вручную или копирование содержимого ячейки в виде текста (например через панель формул)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Примечание
    #34666210
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, мне это не подходит. может, еще есть какие-то способы.
...
Рейтинг: 0 / 0
Примечание
    #34666221
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без макросов никак (читай первое слово моего предыдущего сообщения). Впрочем в реальном времени тоже никак :-(

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Примечание
    #34666250
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот пыталась написать функцию для определения примечания.

Function prim(Stroka As String) As String
If ???.Comment.Text <> "" Then
prim = "истина"
Else: prim = "ложь"
End If
End Function

вот где красное, не знаю что написать. как определить ячейку, которую проверяем на примечание. помогите дописать.
...
Рейтинг: 0 / 0
Примечание
    #34666256
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:-) Улыбнуло!
...
Рейтинг: 0 / 0
Примечание
    #34666289
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не сталкивалась я с этим раньше, знаю, что ламерский вопрос. ну помогите разобраться.
...
Рейтинг: 0 / 0
Примечание
    #34666310
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет же улыбнуло другое
Настенькане макросом и не кодом
KL (XL) извращался - вам решение описывал.
А вы говорите теперь что нужна пользовательская функция - это ли не макрос и код???
...
Рейтинг: 0 / 0
Примечание
    #34666356
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я благодарна KL (XL), но мне это не подходит. раз по-другому нельзя, решила написать свою функцию. а она совсем корявая. помогите ее дописать, если не трудно.
...
Рейтинг: 0 / 0
Примечание
    #34666378
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УЖЕ-УЖЕ
Код: plaintext
1.
2.
3.
4.
5.
6.
Function prim(Ссылка As Range) As Boolean
Dim x As String
 On Error Resume Next
  x = Ссылка.Comment.Text
  If Err.Number <>  0  Then prim = False Else: prim = True
 On Error GoTo  0 
End Function

Для того чтобы сделать её летучей можно например так записывать
=ЕСЛИ(ТДАТА();prim(C1)) , хотя не уверен что это лучший вариант!
...
Рейтинг: 0 / 0
Примечание
    #34666647
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadУЖЕ-УЖЕ
Код: plaintext
1.
2.
3.
4.
5.
6.
Function prim(Ссылка As Range) As Boolean
Dim x As String
 On Error Resume Next
  x = Ссылка.Comment.Text
  If Err.Number <>  0  Then prim = False Else: prim = True
 On Error GoTo  0 
End Function

Для того чтобы сделать её летучей можно например так записывать
=ЕСЛИ(ТДАТА();prim(C1)) , хотя не уверен что это лучший вариант!

Для того чтобы сделать её летучей можно просто использовать метод Volatile, но это, к сожалению, проблемы не решает:

Код: plaintext
1.
2.
3.
4.
Function HasComment(rng As Range) As Boolean
    Application.Volatile
    On Error Resume Next
    HasComment = rng( 1 ).Comment.Creator
End Function
...
Рейтинг: 0 / 0
Примечание
    #34666675
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
Function prim(Ссылка As Range) As Boolean
Dim x As String
 On Error Resume Next
  x = Ссылка.Comment.Text
  If Err.Number <>  0  Then prim = False Else: prim = True
 On Error GoTo  0 
End Function

эта функция мне подходит, но как я поняла, она возвращает одно значение. а как сделать так:

я выделяю 6 ячеек (b1:b6), применяю ф-ю prim(a1:a6), но она возвращает только значение первой, а как сделать, чтобы она возвращала диапазон значений и проставила их в выбранном мной диапазоне (b1:b6).
...
Рейтинг: 0 / 0
Примечание
    #34666794
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настенька
Код: plaintext
1.
2.
3.
4.
5.
6.
Function prim(Ссылка As Range) As Boolean
Dim x As String
 On Error Resume Next
  x = Ссылка.Comment.Text
  If Err.Number <>  0  Then prim = False Else: prim = True
 On Error GoTo  0 
End Function

эта функция мне подходит, но как я поняла, она возвращает одно значение. а как сделать так:

я выделяю 6 ячеек (b1:b6), применяю ф-ю prim(a1:a6), но она возвращает только значение первой, а как сделать, чтобы она возвращала диапазон значений и проставила их в выбранном мной диапазоне (b1:b6).

в B1 написать =prim(A1) и растянуть
...
Рейтинг: 0 / 0
Примечание
    #34666826
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)
Для того чтобы сделать её летучей можно просто использовать метод Volatile, но это, к сожалению, проблемы не решает:



Шайтан какой-то
Я пробовал почему-то не получалось, теперь ок.
Блин ну ведь точно до этого было только если в ячейке на которую ссылашься значение поменять тогда функция пересчитывалась, даже со строкой Volatile. Где-то обшибся
...
Рейтинг: 0 / 0
Примечание
    #34666932
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad KL (XL)
Для того чтобы сделать её летучей можно просто использовать метод Volatile, но это, к сожалению, проблемы не решает:



Шайтан какой-то
Я пробовал почему-то не получалось, теперь ок.
Блин ну ведь точно до этого было только если в ячейке на которую ссылашься значение поменять тогда функция пересчитывалась, даже со строкой Volatile. Где-то обшибся

Ты не ошибся :-( Я же сказал, Volatile главной проблемы (пересчет в реальном времени) не решает. Просто больше вероятности, что задержка с пересчетом будет короче (где-нибудь что-нибудь поменяется)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Примечание
    #34666954
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL) Deggasad KL (XL)
Для того чтобы сделать её летучей можно просто использовать метод Volatile, но это, к сожалению, проблемы не решает:



Шайтан какой-то
Я пробовал почему-то не получалось, теперь ок.
Блин ну ведь точно до этого было только если в ячейке на которую ссылашься значение поменять тогда функция пересчитывалась, даже со строкой Volatile. Где-то обшибся

Ты не ошибся :-( Я же сказал, Volatile главной проблемы (пересчет в реальном времени) не решает. Просто больше вероятности, что задержка с пересчетом будет короче (где-нибудь что-нибудь поменяется)

KL
[MVP - Microsoft Excel]

Я не ошибся и мы говорим об одном и том же - чтобы пересчитывать формулу при изменении любой ячейки на листе. Так вот у меня до этого не получалось почему-то.
Да это проблем не решает, но ведь большего ничего сделать нельзя. хот можно поставить на событие selection_change, тогда ещё чаще пересчитывать будет (в теории). В любом случае мне это не нравится и пользоваться этим постоянно я бы конечно не стал, так для решения какой-нить временной задачи почему нет!
...
Рейтинг: 0 / 0
Примечание
    #34667018
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное всем спасибо, господа. очень помогли. вроде эта тема закрыта.
еще раз всем окликнувшимся спасибо.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Примечание
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]