Изменить цвет вкладки на основе значения ячейки, ошибки времени выполнения - PullRequest
1 голос
/ 28 мая 2019

На каждой вкладке моей книги ячейка I1 рассчитывает Печать, если вкладка должна быть напечатана (соответствует критериям)

Я пытаюсь закодировать каждую вкладку, чтобы посмотреть на I1 и изменить цвет вкладки, если I1 = "Print". Все коды, которые я пытаюсь получить, в итоге приводят к Runtime error 1004.

Кто-нибудь может увидеть, что не так с моим кодом?

РЕДАКТИРОВАТЬ 1: ошибка выдается на

.Цвет = RGB (255, 255, 102)

РЕДАКТИРОВАТЬ 2: я переключился на Расчет от изменения. Спасибо за это.

РЕДАКТИРОВАТЬ 3: У меня есть два кода модулей в одной книге, которые защищают паролем / снимают защиту всех вкладок. Может ли это мешать?

Sub protect_all_sheets()  
top:  
pass = InputBox("password?")  
repass = InputBox("Verify Password")  
If Not (pass = repass) Then  
MsgBox "you made a boo boo"  
GoTo top  
End If  
 For i = 1 To Worksheets.Count  
 If Worksheets(i).ProtectContents = True Then GoTo oops  
 Next  
 For Each s In ActiveWorkbook.Worksheets  
 s.Protect Password:=pass  
 Next  
 Exit Sub  
 oops: MsgBox "I think you have some sheets that are already protected. Please unprotect all sheets then running this Macro."  
End Sub  


Private Sub Worksheet_Change(ByVal Target As Range)
    MyVal = Range("I1").Text

    With ActiveSheet.Tab
        Select Case MyVal
            Case "Print"
                .Color = RGB(255, 255, 102)
            Case Else
                .ColorIndex = xlColorIndexNone
        End Select
    End With
End Sub

1 Ответ

1 голос
/ 28 мая 2019

Worksheet_Change не запускается расчетами: вам нужно Worksheet_Calculate

Private Sub Worksheet_Calculate()
    Me.tab.color = IIf(Me.Range("I1").value="Print",vbRed,vbWhite)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...