условное форматирование не удается после повторного открытия файла - PullRequest
0 голосов
/ 19 января 2019

Работает по назначению, но когда я закрываю и снова открываю файл Excel, он не работает и выполняется только один раз, если я что-то изменяю в том же столбце, добавляю / удаляю вкладку или загружаю файл.Удар по F9 ничего не делает.Если я вручную перехожу к существующему условному форматированию и повторно применяю его, он снова работает должным образом, несмотря на то, что ничего не менялось, но закрываю и заново открываю файл и та же проблема.

    rngNew = "D1" & ":" & Cells(lRowEnd, 4).Address
    Set rngShopTime = Range(rngNew)

    Dim txtShopFree As String
    txtShopFree = "=""ShopFree"""
    Dim rngShop As String
    rngShop = "C1" & ":" & Cells(lRowEnd, 3).Address(False, True)
    With rngShopTime
        .FormatConditions.Add Type:=xlExpression, Formula1:="=" & rngShop & txtShopFree
        .FormatConditions(1).StopIfTrue = False
        With .FormatConditions(.FormatConditions.Count)
            .SetFirstPriority
            With .Interior
                .PatternColorIndex = xlAutomatic
                .Color = RGB(128, 128, 128)
                .TintAndShade = 0
            End With
        End With
    End With

Я выделил этот код, и это все еще происходит.Как бы я мог устранить неполадки или переработать это, так как я не получаю никаких ошибок вообще.

Excel версии 2013 и 2010.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Найдено исправление.

Изменено

rngShop = "C1" & ":" & Cells(lRowEnd, 3).Address(False, True)

На

rngShop = "C1" & txtShopFree 

И

    .FormatConditions.Add Type:=xlExpression, Formula1:="=" & rngShop & txtShopFree

К

    .FormatConditions.Delete
    .FormatConditions.Add Type:=xlExpression, Formula1:="=" & rngShop
0 голосов
/ 20 января 2019

У меня Office 2003 Professional, но это все равно должно применяться, так как это, вероятно, зависит от события и местоположения.

Я предполагаю, что вы не запускаете код для события Workbook_Open объекта ThisWorkbook, а вместо этого где-то на листе.

Поэтому вы должны поместить свой код в событие Workbook_Open и попробовать это.

    'This is code on the ThisWorkbook Object
    '-------------------------------------------
    Option Explicit

    Private Sub Workbook_Open()

        Sheet1.Columns("D:D").Select
        Selection.FormatConditions.Delete
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
            Formula1:="0"
        Selection.FormatConditions(1).Interior.ColorIndex = 44
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
            Formula1:="1"
        Selection.FormatConditions(2).Interior.ColorIndex = 35
    End Sub


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...