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

Вход

Регистрация

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

 

= Мир MS Excel/Принципы подсветки формул в Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Модератор форума: китин  
Принципы подсветки формул в Excel
nerv Дата: Четверг, 03.01.2013, 22:20 | Сообщение № 1
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Всем привет!

Наш доблестный, уважаемый и всеми любимый администратор форума поставил передо мной задачу написать скрипт подсветки формул, аналогичный подсветке формул в Excel. Согласно написанного им мануала подсвечиваются:

  • ЛЮБЫЕ диапазоны (ячейка, диапазон, именованный диапазон)
  • ПАРНЫЕ скобки, если их более одной пары во вложенных функциях формулы, но справа-налево

Для того, чтобы написать скрипт, мне необходимо ваше участие, в частности, нужны разноплановые примеры записи "(ячейка, диапазон, именованный диапазон)"

Спасибо за участие smile


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


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Четверг, 03.01.2013, 22:23
 
Ответить
СообщениеВсем привет!

Наш доблестный, уважаемый и всеми любимый администратор форума поставил передо мной задачу написать скрипт подсветки формул, аналогичный подсветке формул в Excel. Согласно написанного им мануала подсвечиваются:

  • ЛЮБЫЕ диапазоны (ячейка, диапазон, именованный диапазон)
  • ПАРНЫЕ скобки, если их более одной пары во вложенных функциях формулы, но справа-налево

Для того, чтобы написать скрипт, мне необходимо ваше участие, в частности, нужны разноплановые примеры записи "(ячейка, диапазон, именованный диапазон)"

Спасибо за участие smile

Автор - nerv
Дата добавления - 03.01.2013 в 22:20
Serge_007 Дата: Четверг, 03.01.2013, 22:41 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Виноват, не учёл такой момент:
Ссылки на неактивные листы и листы другой книги НЕ ПОДСВЕЧИВАЮТСЯ!


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВиноват, не учёл такой момент:
Ссылки на неактивные листы и листы другой книги НЕ ПОДСВЕЧИВАЮТСЯ!

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

Цитата (Serge_007)
Ссылки на неактивные листы и листы другой книги НЕ ПОДСВЕЧИВАЮТСЯ!

Сереж, не смеши меня ) Как веб-страница об этом узнает?

Еще вопросы:
1. закрепленные столбцы/строки
2. относительные ссылки

Скрипт - это тупо парсер, набор правил. Исходи из этого smile


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


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщение
Цитата (Serge_007)
Ссылки на неактивные листы и листы другой книги НЕ ПОДСВЕЧИВАЮТСЯ!

Сереж, не смеши меня ) Как веб-страница об этом узнает?

Еще вопросы:
1. закрепленные столбцы/строки
2. относительные ссылки

Скрипт - это тупо парсер, набор правил. Исходи из этого smile

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

Excel 2016
Цитата (nerv)
Как веб-страница об этом узнает?

А как Excel узнает? Думаю по наличию текста с ! перед ссылкой, больше наверное никак нельзя

Цитата (nerv)
1. закрепленные столбцы/строки
2. относительные ссылки

А вот тут без разницы


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (nerv)
Как веб-страница об этом узнает?

А как Excel узнает? Думаю по наличию текста с ! перед ссылкой, больше наверное никак нельзя

Цитата (nerv)
1. закрепленные столбцы/строки
2. относительные ссылки

А вот тут без разницы

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

Цитата (Serge_007)
А как Excel узнает?

facepalm это ж объект, он о себе должен это знать

Цитата (Serge_007)
Думаю по наличию текста с ! перед ссылкой, больше наверное никак нельзя

на текущем листе можно так записать ИмяЛиста!A1 и будет работать


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


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Пятница, 04.01.2013, 01:59
 
Ответить
Сообщение
Цитата (Serge_007)
А как Excel узнает?

facepalm это ж объект, он о себе должен это знать

Цитата (Serge_007)
Думаю по наличию текста с ! перед ссылкой, больше наверное никак нельзя

на текущем листе можно так записать ИмяЛиста!A1 и будет работать

Автор - nerv
Дата добавления - 04.01.2013 в 01:55
ikki Дата: Пятница, 04.01.2013, 05:12 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Цитата (nerv)
именованный диапазон

гы. любая последовательность букв-цифр-подчеркиваний, начинающаяся с буквы
причем для ex 2003 и старше AAA1 или Z1000000 - это, возможно, имена.
а для ex 2007 и младше AAA1 или Z1000000 - это адреса ячеек и ничего больше.
бонус: зато со списком названий функций сверяться не надо - имена могут полностью совпадать с ними smile

четыре варианта записи адреса в нотации A1, четыре же - в нотации R1C1
плюс варианты на диапазоны чисто столбцов (A:A, $A:$B, B:C, $B:D, B:$D, C1, C[-1], C1:C[3] и т.п.) и, аналогично, строк.

все остальные заморочки могут быть с наличием "удовлетворяющего" условиям, но находящихся внутри кавычек текста, например

Код
=найти("!";"обманка!A1:A10";1)


то же - по скобкам и прочая.

пс. а синтаксис функций проверять не бум? biggrin

ппс. в случае победы доблестному администратору одним ящиком хенесси не отделаться biggrin


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Пятница, 04.01.2013, 05:24
 
Ответить
Сообщение
Цитата (nerv)
именованный диапазон

гы. любая последовательность букв-цифр-подчеркиваний, начинающаяся с буквы
причем для ex 2003 и старше AAA1 или Z1000000 - это, возможно, имена.
а для ex 2007 и младше AAA1 или Z1000000 - это адреса ячеек и ничего больше.
бонус: зато со списком названий функций сверяться не надо - имена могут полностью совпадать с ними smile

четыре варианта записи адреса в нотации A1, четыре же - в нотации R1C1
плюс варианты на диапазоны чисто столбцов (A:A, $A:$B, B:C, $B:D, B:$D, C1, C[-1], C1:C[3] и т.п.) и, аналогично, строк.

все остальные заморочки могут быть с наличием "удовлетворяющего" условиям, но находящихся внутри кавычек текста, например

Код
=найти("!";"обманка!A1:A10";1)


то же - по скобкам и прочая.

пс. а синтаксис функций проверять не бум? biggrin

ппс. в случае победы доблестному администратору одним ящиком хенесси не отделаться biggrin

Автор - ikki
Дата добавления - 04.01.2013 в 05:12
Serge_007 Дата: Пятница, 04.01.2013, 13:42 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (ikki)
это, возможно, имена

Цитата (ikki)
это адреса ячеек

И подсвечиваются они одинаково smile

Цитата (ikki)
Код
=найти("!";"обманка!A1:A10";1)

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

Цитата (ikki)
то же - по скобкам и прочая.

Ага smile

Цитата (ikki)
синтаксис функций проверять не бум?

Нет

Цитата (nerv)
на текущем листе можно так записать ИмяЛиста!A1 и будет работать

Тут вот какое дело...
На форуме нет текущего листа, поэтому будем считать что такого вида запись исключена, т.е. такую ссылку приравниваем к ссылке на неактивный лист


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (ikki)
это, возможно, имена

Цитата (ikki)
это адреса ячеек

И подсвечиваются они одинаково smile

Цитата (ikki)
Код
=найти("!";"обманка!A1:A10";1)

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

Цитата (ikki)
то же - по скобкам и прочая.

Ага smile

Цитата (ikki)
синтаксис функций проверять не бум?

Нет

Цитата (nerv)
на текущем листе можно так записать ИмяЛиста!A1 и будет работать

Тут вот какое дело...
На форуме нет текущего листа, поэтому будем считать что такого вида запись исключена, т.е. такую ссылку приравниваем к ссылке на неактивный лист

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

ikki, спасибо, + в карму

Serge_007, понял. Работу начал. Скоро будет готова тестовая страница.

Еще хотелось бы прояснить: одинаковые ячейки, диапазоны, имена диапазонов подсвечиваются одинаково (одним и тем же цветом)?


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


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Пятница, 04.01.2013, 18:01
 
Ответить
Сообщениеikki, спасибо, + в карму

Serge_007, понял. Работу начал. Скоро будет готова тестовая страница.

Еще хотелось бы прояснить: одинаковые ячейки, диапазоны, имена диапазонов подсвечиваются одинаково (одним и тем же цветом)?

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

Excel 2016
Цитата (nerv)
имена диапазонов подсвечиваются одинаково (одним и тем же цветом)?

О как!..
А я думал что хотя бы на пару процентов знаю Excel...

Нет, тут всё сложнее. Если имя ссылается на другой лист - то подсветки нет, а если на текущий - то да, синеньким подсвечиваются все...
Как это реализовать - не знаю, думаю...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (nerv)
имена диапазонов подсвечиваются одинаково (одним и тем же цветом)?

О как!..
А я думал что хотя бы на пару процентов знаю Excel...

Нет, тут всё сложнее. Если имя ссылается на другой лист - то подсветки нет, а если на текущий - то да, синеньким подсвечиваются все...
Как это реализовать - не знаю, думаю...

Автор - Serge_007
Дата добавления - 04.01.2013 в 18:31
nerv Дата: Пятница, 04.01.2013, 20:53 | Сообщение № 10
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Serge_007, я об этом

Код
=B1+B1+C1+C1


т.е. цвет первой ссылки B1 идентичен цвету второй ссылки B1. Так?


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


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Пятница, 04.01.2013, 20:54
 
Ответить
СообщениеSerge_007, я об этом

Код
=B1+B1+C1+C1


т.е. цвет первой ссылки B1 идентичен цвету второй ссылки B1. Так?

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

2010
Ежели сам Excel так выделяет, то зачем иначе?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЕжели сам Excel так выделяет, то зачем иначе?

Автор - RAN
Дата добавления - 04.01.2013 в 20:57
MCH Дата: Пятница, 04.01.2013, 21:12 | Сообщение № 12
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Цитата (nerv)
т.е. цвет первой ссылки B1 идентичен цвету второй ссылки B1. Так?

Проверил - подсвечиваются одинаково
даже если будет формула:
Код
=B1+B1+C1+C1+B1

то B1 - синие во всех трех случаях


Кроме того, имена подсвечиваются если они имеют ссылки, но при этом не будут "светится", если они не ссылки (вычисляются по формуле, являются константой или массивом констант, являются ссылкой на другой лист)
Если имя является ссылкой на B1, то оно также будет одсвечиватся синим цветом, если используется в формуле


Предлагаю не подсвечивать имена вообще
К сообщению приложен файл: 5824045.png (0.3 Kb) · 2877078.png (0.3 Kb)


Сообщение отредактировал MCH - Пятница, 04.01.2013, 21:13
 
Ответить
Сообщение
Цитата (nerv)
т.е. цвет первой ссылки B1 идентичен цвету второй ссылки B1. Так?

Проверил - подсвечиваются одинаково
даже если будет формула:
Код
=B1+B1+C1+C1+B1

то B1 - синие во всех трех случаях


Кроме того, имена подсвечиваются если они имеют ссылки, но при этом не будут "светится", если они не ссылки (вычисляются по формуле, являются константой или массивом констант, являются ссылкой на другой лист)
Если имя является ссылкой на B1, то оно также будет одсвечиватся синим цветом, если используется в формуле


Предлагаю не подсвечивать имена вообще

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

Excel 2016
Цитата (MCH)
Предлагаю не подсвечивать имена вообще

Не согласен. Или как в Excel - или никак


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (MCH)
Предлагаю не подсвечивать имена вообще

Не согласен. Или как в Excel - или никак

Автор - Serge_007
Дата добавления - 04.01.2013 в 21:27
MCH Дата: Пятница, 04.01.2013, 21:34 | Сообщение № 14
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Цитата (Serge_007)
Не согласен. Или как в Excel - или никак

А как ты узнаешь без файла Excel, чем является имя - ссылкой или нет?
Тогда как альтернативный вариант - подсвечивать следующим цветом


Сообщение отредактировал MCH - Пятница, 04.01.2013, 21:42
 
Ответить
Сообщение
Цитата (Serge_007)
Не согласен. Или как в Excel - или никак

А как ты узнаешь без файла Excel, чем является имя - ссылкой или нет?
Тогда как альтернативный вариант - подсвечивать следующим цветом

Автор - MCH
Дата добавления - 04.01.2013 в 21:34
nerv Дата: Пятница, 04.01.2013, 21:35 | Сообщение № 15
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Цитата (Serge_007)
Или как в Excel - или никак

уже ни как в Excel
Цитата (Serge_007)
Тут вот какое дело...
На форуме нет текущего листа, поэтому будем считать что такого вида запись исключена, т.е. такую ссылку приравниваем к ссылке на неактивный лист

smile


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


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщение
Цитата (Serge_007)
Или как в Excel - или никак

уже ни как в Excel
Цитата (Serge_007)
Тут вот какое дело...
На форуме нет текущего листа, поэтому будем считать что такого вида запись исключена, т.е. такую ссылку приравниваем к ссылке на неактивный лист

smile

Автор - nerv
Дата добавления - 04.01.2013 в 21:35
MCH Дата: Пятница, 04.01.2013, 21:37 | Сообщение № 16
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

еще один момент для реализации:
Ссылки в формуле
Код
=B1+$B$1+B$1+$B1
подсвечиваются одним цветом, т.к. это ссылки на одну и ту же ячейку
 
Ответить
Сообщениееще один момент для реализации:
Ссылки в формуле
Код
=B1+$B$1+B$1+$B1
подсвечиваются одним цветом, т.к. это ссылки на одну и ту же ячейку

Автор - MCH
Дата добавления - 04.01.2013 в 21:37
MCH Дата: Пятница, 04.01.2013, 21:40 | Сообщение № 17
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Цитата (Serge_007)
как в Excel

Если ссылок в формуле более 32, то они перестают выделятся


Сообщение отредактировал MCH - Пятница, 04.01.2013, 21:41
 
Ответить
Сообщение
Цитата (Serge_007)
как в Excel

Если ссылок в формуле более 32, то они перестают выделятся

Автор - MCH
Дата добавления - 04.01.2013 в 21:40
nerv Дата: Пятница, 04.01.2013, 21:41 | Сообщение № 18
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Serge_007, ты уж определись с именами, или светим или нет. Если первое, набор правил, что является именем. Опять-таки, одинаковые имена светятся одинаково?

Как в эксель 1:1 не будет. Если не согласен, лучше прекратить работу сейчас.


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


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
СообщениеSerge_007, ты уж определись с именами, или светим или нет. Если первое, набор правил, что является именем. Опять-таки, одинаковые имена светятся одинаково?

Как в эксель 1:1 не будет. Если не согласен, лучше прекратить работу сейчас.

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

Excel 2016
Цитата (nerv)
уже ни как в Excel

Та не, тут вариантов нет smile

Цитата (MCH)
как ты узнаешь без файла Excel, чем является имя - ссылкой или нет?

Думаю, что такой компромисс разумен: ВСЕ имена подсвечивать. Мала вероятность что кто-то (кроме отвечающих, да и то в редких случаях) будет использовать имя без ссылок

ЗЫ Имена вообще крайне редко используют при выкладывании на форум, так что % отклонения должен быть мизерно низок


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (nerv)
уже ни как в Excel

Та не, тут вариантов нет smile

Цитата (MCH)
как ты узнаешь без файла Excel, чем является имя - ссылкой или нет?

Думаю, что такой компромисс разумен: ВСЕ имена подсвечивать. Мала вероятность что кто-то (кроме отвечающих, да и то в редких случаях) будет использовать имя без ссылок

ЗЫ Имена вообще крайне редко используют при выкладывании на форум, так что % отклонения должен быть мизерно низок

Автор - Serge_007
Дата добавления - 04.01.2013 в 21:45
ikki Дата: Пятница, 04.01.2013, 21:56 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
честно говоря, вообще не вижу (ай! не бейте меня пагалаве! щикотно ж...) серьезного смысла подсвечивать на форуме адреса (имена).
основное назначение такой подсветки в Excel - именно для визуальной связи формулы с текущим листом.
именно поэтому "внешние" адреса и имена не подсвечиваются.

на форуме это будет новогодняя гирлянда - да и только.
ибо листа и ячеек нет.

вот скобки - другое дело.
хотя...
они и в эксе почти сливаются sad


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениечестно говоря, вообще не вижу (ай! не бейте меня пагалаве! щикотно ж...) серьезного смысла подсвечивать на форуме адреса (имена).
основное назначение такой подсветки в Excel - именно для визуальной связи формулы с текущим листом.
именно поэтому "внешние" адреса и имена не подсвечиваются.

на форуме это будет новогодняя гирлянда - да и только.
ибо листа и ячеек нет.

вот скобки - другое дело.
хотя...
они и в эксе почти сливаются sad

Автор - ikki
Дата добавления - 04.01.2013 в 21:56
  • Страница 1 из 7
  • 1
  • 2
  • 3
  • 6
  • 7
  • »
Поиск:

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