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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнить/закрасить выделенную ячейку/диапазон константой - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Заполнить/закрасить выделенную ячейку/диапазон константой
карандаш Дата: Понедельник, 14.01.2013, 06:19 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
здравствуйте

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
 
Ответить
Сообщениездравствуйте

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:19
AlexM Дата: Понедельник, 14.01.2013, 08:58 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Код макроса
[vba]
Код
Sub InsSpace()
For Each cell In Selection: cell.Value = " ": Next
End Sub
[/vba]
См. файл

Дополнение
Можно обойтись без макроса.
Как и для варианта с макросом выделяете нужные ячейки в диапазоне с нажатым Ctrl,
затем переходите в строку формул,
ставите пробел,
завершаете ввод нажатием Ctrl+Enter
К сообщению приложен файл: InsSpace.xls (23.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 14.01.2013, 09:45
 
Ответить
СообщениеКод макроса
[vba]
Код
Sub InsSpace()
For Each cell In Selection: cell.Value = " ": Next
End Sub
[/vba]
См. файл

Дополнение
Можно обойтись без макроса.
Как и для варианта с макросом выделяете нужные ячейки в диапазоне с нажатым Ctrl,
затем переходите в строку формул,
ставите пробел,
завершаете ввод нажатием Ctrl+Enter

Автор - AlexM
Дата добавления - 14.01.2013 в 08:58
ikki Дата: Понедельник, 14.01.2013, 09:01 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
Цитата (карандаш)
где прочитать

F1 для начала.
в VBE, ессно


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщение
Цитата (карандаш)
где прочитать

F1 для начала.
в VBE, ессно

Автор - ikki
Дата добавления - 14.01.2013 в 09:01
Gustav Дата: Понедельник, 14.01.2013, 10:27 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Цитата (AlexM)
For Each cell In Selection: cell.Value = " ": Next

Вполне достаточно одного присваивания без цикла:
[vba]
Код
Selection.Value = " "
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Цитата (AlexM)
For Each cell In Selection: cell.Value = " ": Next

Вполне достаточно одного присваивания без цикла:
[vba]
Код
Selection.Value = " "
[/vba]

Автор - Gustav
Дата добавления - 14.01.2013 в 10:27
AlexM Дата: Понедельник, 14.01.2013, 10:38 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4517
Репутация: 1129 ±
Замечаний: 0% ±

Excel 2003
Цитата (Gustav)
Вполне достаточно одного присваивания без цикла

В дополнении моего ответа это присваивание делается без макроса. smile



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Цитата (Gustav)
Вполне достаточно одного присваивания без цикла

В дополнении моего ответа это присваивание делается без макроса. smile

Автор - AlexM
Дата добавления - 14.01.2013 в 10:38
карандаш Дата: Понедельник, 14.01.2013, 15:20 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 329
Репутация: 8 ±
Замечаний: 0% ±

2010
==== начало цитаты =====
Как и для варианта с макросом выделяете нужные ячейки в диапазоне с нажатым Ctrl,
затем переходите в строку формул,
ставите пробел,
завершаете ввод нажатием Ctrl+Enter
==== конец цитаты =====

[admin]Карандаш, для цитирования есть соответствующие теги[/admin]

прошу прощения - не уточнил важную деталь:
это действие делает "простой" человек
т.е.
1. действие должно быть только одно (максисмум два) - выделил + нажал кнопку с понятной надписью = получил единственно возможный результат.
2. "защита от дураков" должна быть стопроцентой обязательно.
т.е. чтобы человек не мог ничего испортить.

чтобы не испортил, я вставил разрешение на редактирование только строго отведенному диапазону
жаль, что нельзя разрешить только конкретные действия - не получается запретить изменения отформатированных границ, но разрешить редактирование содержимого ячейки

или можно? подскажите, пожалуйста


Сообщение отредактировал карандаш - Понедельник, 14.01.2013, 15:21
 
Ответить
Сообщение==== начало цитаты =====
Как и для варианта с макросом выделяете нужные ячейки в диапазоне с нажатым Ctrl,
затем переходите в строку формул,
ставите пробел,
завершаете ввод нажатием Ctrl+Enter
==== конец цитаты =====

[admin]Карандаш, для цитирования есть соответствующие теги[/admin]

прошу прощения - не уточнил важную деталь:
это действие делает "простой" человек
т.е.
1. действие должно быть только одно (максисмум два) - выделил + нажал кнопку с понятной надписью = получил единственно возможный результат.
2. "защита от дураков" должна быть стопроцентой обязательно.
т.е. чтобы человек не мог ничего испортить.

чтобы не испортил, я вставил разрешение на редактирование только строго отведенному диапазону
жаль, что нельзя разрешить только конкретные действия - не получается запретить изменения отформатированных границ, но разрешить редактирование содержимого ячейки

или можно? подскажите, пожалуйста

Автор - карандаш
Дата добавления - 14.01.2013 в 15:20
  • Страница 1 из 1
  • 1
Поиск:

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