Задача такого характера... Имеется документ с 3 листами (лист 1, лист 2 и лист 3 соответственно) как сделать так, чтобы при открытии документа подкрашивалось название лист 1, 2 или 3 в зависимости от значения в ячейке (фраза"работаю с листом 1"), например А1, либо через выпадающий список
Задача такого характера... Имеется документ с 3 листами (лист 1, лист 2 и лист 3 соответственно) как сделать так, чтобы при открытии документа подкрашивалось название лист 1, 2 или 3 в зависимости от значения в ячейке (фраза"работаю с листом 1"), например А1, либо через выпадающий списокAndrey1883
Сообщение отредактировал Andrey1883 - Четверг, 06.08.2015, 12:09
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Const CellSheet = "$F$2" Dim i As Long If Target.Address = CellSheet Then For i = 1 To Sheets.Count 'Sheets(i).Select Sheets(i).Tab.ColorIndex = xlColorIndexNone Next i Sheets(Sheets(1).Range(CellSheet).Text).Tab.Color = vbRed If Err.Number = 9 Then Sheet1.Cells(1, 4) = Sheet1.Name End If End If End Sub
[/vba]
к листу неправильно обращались [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Const CellSheet = "$F$2" Dim i As Long If Target.Address = CellSheet Then For i = 1 To Sheets.Count 'Sheets(i).Select Sheets(i).Tab.ColorIndex = xlColorIndexNone Next i Sheets(Sheets(1).Range(CellSheet).Text).Tab.Color = vbRed If Err.Number = 9 Then Sheet1.Cells(1, 4) = Sheet1.Name End If End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Dim i As Long If Target.Address = "$F$2" Then For i = 1 To Sheets.Count Sheets(i).Tab.ColorIndex = xlColorIndexNone Next i Sheets(Target.Text).Tab.Color = vbRed If Err.Number = 9 Then Target = Me.Name End If End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Dim i As Long If Target.Address = "$F$2" Then For i = 1 To Sheets.Count Sheets(i).Tab.ColorIndex = xlColorIndexNone Next i Sheets(Target.Text).Tab.Color = vbRed If Err.Number = 9 Then Target = Me.Name End If End If End Sub