Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Окрасить ячейку одним щелчком, снять и вернуть окрас той же ячейки двойным щелчком / 4 сообщений из 4, страница 1 из 1
27.05.2015, 14:27
    #38969808
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окрасить ячейку одним щелчком, снять и вернуть окрас той же ячейки двойным щелчком
Доброго всем времени суток!
Помогите разобраться,
По одному щелчку я окрашиваю ячейку :
Код: vbnet
1.
Target.Interior.ColorIndex = 40



Далее я хочу, не смещаясь с ячейки, но уже двойным щелчком, отменить окрас. И так же двойным щелчком вернуть окрас.
Код: vbnet
1.
Target.Interior.Color = Not Target.Interior.Color



И в целом все работает, но я не понимаю как мне задать цвет, в скрипте срабатывающим по двойному щелчку? У меня он в место отмены цвета, красить в темно синий, а далее возвращает цвет 40
Прикрепляю код целиком.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
'CODE 1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
            Target.Interior.ColorIndex = 40
        End If
End Sub
  
'CODE 2 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
        Cancel = True
        'Target.Interior.ColorIndex = 40
        Target.Interior.Color = Not Target.Interior.Color
    End If
End Sub
...
Рейтинг: 0 / 0
27.05.2015, 14:35
    #38969818
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окрасить ячейку одним щелчком, снять и вернуть окрас той же ячейки двойным щелчком
надо просто в Immediate-окне посмотреть, чему равно выражение
Not 40
и сразу будет все понятно.

А потом открыть учебник, почитать, что такое логический тип данных, логические выражения и т.п.

А потом посмотреть, чему равен Target.Interior.ColorIndex до того, как ты первично присвоил ему 40
...
Рейтинг: 0 / 0
27.05.2015, 15:35
    #38969894
lopuxi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окрасить ячейку одним щелчком, снять и вернуть окрас той же ячейки двойным щелчком
Shocker.Pro,

Я не совсем понял как посмотреть чему равен Target.Interior.ColorIndex до того, как я первично присвоил ему 40.
Но я понял что Not делает из присвоенного числа -41

Но это не помогло мне что-то изменить. Написал через If.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
'CODE 1 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
            Target.Interior.Color = 11851260
        End If
End Sub
  
'CODE 2 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
        Cancel = True  
        If Target.Interior.Color = 11851260 Then
            Target.Interior.Color = 16777215
        Else: Target.Interior.Color = 11851260
        End If
    End If
...
Рейтинг: 0 / 0
27.05.2015, 16:43
    #38969977
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Окрасить ячейку одним щелчком, снять и вернуть окрас той же ячейки двойным щелчком
lopuxiЯ не совсем понял как посмотреть чему равен Target.Interior.ColorIndex до того, как я первично присвоил ему 40.Msgbox Target.Interior.ColorIndex например

lopuxiНаписал через If.в данном случае это верно
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Окрасить ячейку одним щелчком, снять и вернуть окрас той же ячейки двойным щелчком / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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