вопрос 1: есть таблица: строки - часы, столбцы - дни. необходимо визуально выделять ячейки (часы) работы т.к. я не умею анализировать цвет заливки (да и она может отличаться по оттенкам, если не использовать для заливки кнопку-команду заполнения определенным цветом) то я использую пробел для заполнения (через условное форматирование (анализ непустой ячейки) она закрашивается определенным цветом) и потом считаю кол-во непустых (следовательно, окрашенных) ячеек за день
как заполнить константой (или закрасить) заранее выделенные ячейки? я нашел на форуме следующий макрос [vba]
Код
Sub Заполнить n = Selection.Address On Error GoTo A g = 1 / (Range(n).Cells.Count - 1) Selection.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "." Range(n) = Range(n).Value Exit Sub A: Value.Cells = "4" End Sub
[/vba] но он не закрашивает/не заполняет выделенную область, если там всего одна ячейка самостоятельно модифицировать код не получилось - какие ошибки возникают
опять же, он не очещает ячейки выделенного диапазона
вопрос 2: где прочитать про логику организации работы ОПП в excele где объек ячейка, обект диапазон, как найти выделенный диапазон и как с ним работать на дельфи все понятно, а тут какая-то иная, трудно постижимая логика
здравствуйте
excel 2010 есть несколько вопросов
вопрос 1: есть таблица: строки - часы, столбцы - дни. необходимо визуально выделять ячейки (часы) работы т.к. я не умею анализировать цвет заливки (да и она может отличаться по оттенкам, если не использовать для заливки кнопку-команду заполнения определенным цветом) то я использую пробел для заполнения (через условное форматирование (анализ непустой ячейки) она закрашивается определенным цветом) и потом считаю кол-во непустых (следовательно, окрашенных) ячеек за день
как заполнить константой (или закрасить) заранее выделенные ячейки? я нашел на форуме следующий макрос [vba]
Код
Sub Заполнить n = Selection.Address On Error GoTo A g = 1 / (Range(n).Cells.Count - 1) Selection.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "." Range(n) = Range(n).Value Exit Sub A: Value.Cells = "4" End Sub
[/vba] но он не закрашивает/не заполняет выделенную область, если там всего одна ячейка самостоятельно модифицировать код не получилось - какие ошибки возникают
опять же, он не очещает ячейки выделенного диапазона
вопрос 2: где прочитать про логику организации работы ОПП в excele где объек ячейка, обект диапазон, как найти выделенный диапазон и как с ним работать на дельфи все понятно, а тут какая-то иная, трудно постижимая логикакарандаш
Сообщение отредактировал карандаш - Понедельник, 14.01.2013, 06:22
Sub InsSpace() For Each cell In Selection: cell.Value = " ": Next End Sub
[/vba] См. файл
Дополнение Можно обойтись без макроса. Как и для варианта с макросом выделяете нужные ячейки в диапазоне с нажатым Ctrl, затем переходите в строку формул, ставите пробел, завершаете ввод нажатием Ctrl+Enter
Код макроса [vba]
Код
Sub InsSpace() For Each cell In Selection: cell.Value = " ": Next End Sub
[/vba] См. файл
Дополнение Можно обойтись без макроса. Как и для варианта с макросом выделяете нужные ячейки в диапазоне с нажатым Ctrl, затем переходите в строку формул, ставите пробел, завершаете ввод нажатием Ctrl+EnterAlexM
==== начало цитаты ===== Как и для варианта с макросом выделяете нужные ячейки в диапазоне с нажатым Ctrl, затем переходите в строку формул, ставите пробел, завершаете ввод нажатием Ctrl+Enter ==== конец цитаты =====
прошу прощения - не уточнил важную деталь: это действие делает "простой" человек т.е. 1. действие должно быть только одно (максисмум два) - выделил + нажал кнопку с понятной надписью = получил единственно возможный результат. 2. "защита от дураков" должна быть стопроцентой обязательно. т.е. чтобы человек не мог ничего испортить.
чтобы не испортил, я вставил разрешение на редактирование только строго отведенному диапазону жаль, что нельзя разрешить только конкретные действия - не получается запретить изменения отформатированных границ, но разрешить редактирование содержимого ячейки
или можно? подскажите, пожалуйста
==== начало цитаты ===== Как и для варианта с макросом выделяете нужные ячейки в диапазоне с нажатым Ctrl, затем переходите в строку формул, ставите пробел, завершаете ввод нажатием Ctrl+Enter ==== конец цитаты =====
прошу прощения - не уточнил важную деталь: это действие делает "простой" человек т.е. 1. действие должно быть только одно (максисмум два) - выделил + нажал кнопку с понятной надписью = получил единственно возможный результат. 2. "защита от дураков" должна быть стопроцентой обязательно. т.е. чтобы человек не мог ничего испортить.
чтобы не испортил, я вставил разрешение на редактирование только строго отведенному диапазону жаль, что нельзя разрешить только конкретные действия - не получается запретить изменения отформатированных границ, но разрешить редактирование содержимого ячейки