Всем привет! Не могу понять с чем может быть связано странное поведение условного форматирования. В голове дыру уже протер. Макросом кликом по ячейке в диапазоне D1:G1 устанавливается точка в ячейке. УФ при наличии точки закрашивает ячейку. Двойной клик по ячейке удаляет точку, но при этом УФ продолжает закрашивать ячейку, причем если поставить формулу, например как в G2, ссылаясь на ячейку с УФ, то начинает работать правильно. Если удалять точку просто клавишей delete, либо сохранить файл, либо пересчитать всю книгу (вычисления по умолчанию автоматические, в коде пересчет нигде не отключается) срабатывает.
Что мешает правильной работе УФ?
Всем привет! Не могу понять с чем может быть связано странное поведение условного форматирования. В голове дыру уже протер. Макросом кликом по ячейке в диапазоне D1:G1 устанавливается точка в ячейке. УФ при наличии точки закрашивает ячейку. Двойной клик по ячейке удаляет точку, но при этом УФ продолжает закрашивать ячейку, причем если поставить формулу, например как в G2, ссылаясь на ячейку с УФ, то начинает работать правильно. Если удалять точку просто клавишей delete, либо сохранить файл, либо пересчитать всю книгу (вычисления по умолчанию автоматические, в коде пересчет нигде не отключается) срабатывает.
_Boroda_, 2010й sboy, да, заработало, но я же до этого нигде автоматический пересчет не отключал. в примере ячейка g1 на которую ссылается формула ведь работает
_Boroda_, 2010й sboy, да, заработало, но я же до этого нигде автоматический пересчет не отключал. в примере ячейка g1 на которую ссылается формула ведь работаетSancho
По идее установка-снятие точки должно само запускать пересчет листа. Может, не успевает просто? Посмотрите еще такой вариант - передадим управление и дождемся выполнения через DoEvents https://msdn.microsoft.com/en-us....%3Dtrue Но не знаю, у меня и так все прекрасно работает
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("d1:G1")) Is Nothing Then Range(Cells(Target.Row, 4), Cells(Target.Row, 7)).Value = "" Target.Value = "." DoEvents End If End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("D1:G1")) Is Nothing Then Cancel = True If Target.Value = "" Then Target.Value = "." Else Target.Value = "" End If DoEvents End If End Sub
[/vba]
=== Кстати, а почему Вы сразу макросом не красите?
По идее установка-снятие точки должно само запускать пересчет листа. Может, не успевает просто? Посмотрите еще такой вариант - передадим управление и дождемся выполнения через DoEvents https://msdn.microsoft.com/en-us....%3Dtrue Но не знаю, у меня и так все прекрасно работает
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("d1:G1")) Is Nothing Then Range(Cells(Target.Row, 4), Cells(Target.Row, 7)).Value = "" Target.Value = "." DoEvents End If End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("D1:G1")) Is Nothing Then Cancel = True If Target.Value = "" Then Target.Value = "." Else Target.Value = "" End If DoEvents End If End Sub
[/vba]
=== Кстати, а почему Вы сразу макросом не красите?_Boroda_
По идее установка-снятие точки должно само запускать пересчет листа. Может, не успевает просто?
может быть с настройками у меня что то, попробую на другом компе. Еще раз напомню, если какая либо формула ссылается на ячейки с УФ, то все работает прекрасно. С G1 снимается заливка так как на нее есть ссылка в G2, а с D1:F1 нет. красится нормально и без формул, а вот снятие заливки почему то "залипает"
По идее установка-снятие точки должно само запускать пересчет листа. Может, не успевает просто?
может быть с настройками у меня что то, попробую на другом компе. Еще раз напомню, если какая либо формула ссылается на ячейки с УФ, то все работает прекрасно. С G1 снимается заливка так как на нее есть ссылка в G2, а с D1:F1 нет. красится нормально и без формул, а вот снятие заливки почему то "залипает"
_Boroda_, справку почитал, ничего не понял. Снятие заливки так же не работает. На соседнем ПК мой и Ваш тоже. код свой и правил, и копировал Ваш целиком
_Boroda_, справку почитал, ничего не понял. Снятие заливки так же не работает. На соседнем ПК мой и Ваш тоже. код свой и правил, и копировал Ваш целикомSancho
Сообщение отредактировал Sancho - Среда, 19.07.2017, 15:57