Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с диапазоном ячеек 
V
    Опции темы
FOLGA
  Дата 7.8.2007, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



Доброго времени суток! У меня вопрос следующего характера: можно ли на листе работать с диапазоном ячеек, т.е., например, при двойном щелчке на одну группу ячеек происходило одно событие, а при щелчке на другую группу - другое? можно ли блокировать группу ячеек, чтобы при двойном щелчке на них ничего не происходило? Пожалуйста, помогите, если не трудно, буду очень признательна!
PM MAIL   Вверх
Akina
Дата 8.8.2007, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



У книги нет события Click. Как и у отдельно взятого листа.
Есть только BeforeDoubleClick и BeforeRightClick.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
RockClimber
Дата 8.8.2007, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: 7
Всего: 15



Двойной щелчок - это обязательно? Если нет, то можно обрабатывать событие change. При этом надо проверять свойства Target.Row и Target.Column, в них будут содержаться номера строки и столбца ячейки, по которой кликнули.


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
FOLGA
Дата 8.8.2007, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



RockClimber, а когда именно проверять эти свойства? можно примерчик, pleace...
PM MAIL   Вверх
FOLGA
Дата 8.8.2007, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



Ой спасибо, разобралась! Ура, ура, ура!
PM MAIL   Вверх
mihanik
Дата 8.8.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Цитата(FOLGA @  8.8.2007,  08:30 Найти цитируемый пост)
Ой спасибо, разобралась! Ура, ура, ура! 


А пример решения?
Всем было бы интересно...



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
FOLGA
Дата 9.8.2007, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



Вот, пожалуйста, не знаю, насколько грамотно, но работает...
Код

If (Target.Row = 64 Or Target.Row = 65 Or Target.Row = 66 Or Target.Row = 67 Or Target.Row = 68 Or Target.Row = 69 Or Target.Row = 70 Or Target.Row = 71 Or Target.Row = 72) And Target.Column = 2 Then
Worksheets(1).Cells(ActiveCell.Row, ActiveCell.Column + 1).Value = "нет"
Worksheets(1).Cells(ActiveCell.Row, ActiveCell.Column + 2).Value = "нет"
Worksheets(1).Cells(ActiveCell.Row, ActiveCell.Column + 3).Value = "нет"
Worksheets(2).Activate
End If
'при щелчке переходит на 2 лист и заполняет следующие 3 ячейки
If (Target.Row = 64 Or Target.Row = 65 Or Target.Row = 66 Or Target.Row = 67 Or Target.Row = 68 Or Target.Row = 69 Or Target.Row = 70 Or Target.Row = 71 Or Target.Row = 72) And (Target.Column = 3) Then
If ActiveCell.Value = "нет" Then ActiveCell.Value = "да" Else ActiveCell.Value = "нет"
End If
If (Target.Row = 64 Or Target.Row = 65 Or Target.Row = 66 Or Target.Row = 67 Or Target.Row = 68 Or Target.Row = 69 Or Target.Row = 70 Or Target.Row = 71 Or Target.Row = 72) And (Target.Column = 4) Then
If ActiveCell.Value = "нет" Then ActiveCell.Value = "да" Else ActiveCell.Value = "нет"
End If
If (Target.Row = 64 Or Target.Row = 65 Or Target.Row = 66 Or Target.Row = 67 Or Target.Row = 68 Or Target.Row = 69 Or Target.Row = 70 Or Target.Row = 71 Or Target.Row = 72) And (Target.Column = 5) Then
If ActiveCell.Value = "нет" Then ActiveCell.Value = "да" Else ActiveCell.Value = "нет"
End If
' а здесь меняет слова да/нет при двойном щелчке

PM MAIL   Вверх
pavel55
Дата 11.8.2007, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.5.2007

Репутация: нет
Всего: нет



По-моему, вместо длинной строки

Код
If (Target.Row = 64 Or Target.Row = 65 Or Target.Row = 66 Or Target.Row = 67 Or Target.Row = 68 Or Target.Row = 69 Or Target.Row = 70 Or Target.Row = 71 Or Target.Row = 72) And Target.Column = 2 Then


Которая является, по-моему, диапазоном B64:B72

Можно использовать вот это

Код
 If Not Intersect(Target, Range("B64:B72")) Is Nothing Then ....

 
вот пример для двойного щелчка в нужном диапазоне

Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim RngInColumnB  As Range
    Set RngInColumnB = Range("B64:B72") 'присваиваем диапазон объектной переменной
    If Not Intersect(Target, RngInColumnB) Is Nothing Then 'проверяем щёлкнул ли user внутри этого диапазона или нет
        MsgBox "Hi" 'если да, то показать сообщение "привет"
    End If
End Sub


ну и также можно присвоит все ваши диапазоны другим объектным переменным (хотя можно и не присваивать, а просто писать Range("B64:B72") и проверять их через Intersect

Если я правильно понял вашу задачу.

Это сообщение отредактировал(а) pavel55 - 11.8.2007, 22:11
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1102 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.