Тема: VBA в excel помогите написать код для полосы прокрутки
Люди Help, плиzzzzzz!!!!!!!!!! Вот написала код для полосы прокрутки, а мне препод сказал, что неверно :(
Задача:
Создать таблицу для отображения заработка трех сотрудников по месяцам(4 столбца,13 строк). Используя полосу прокрутки, добейтесь того, чтобы при нахождении ее движка напротив ячейки с соответствующим названием месяца, эта ячейка была бы активизирована.
Во-первых, препод сказал, что когда движок доходит до конца полосы прокрутки, последняя ячейка должна оставаться активизированной (выделенной), а у меня выделение исчезает куда-то :(
Во-вторых, этот код надо еще как-то изменить, чтоб он занимал не более 3-х строк 8(
Private Sub ScrollBar1_Change() Dim N_MES As Integer ‘N_MES -вспомогательная переменная, позволяющая избежать ‘излишне длинной записи при проверке условных операторов Sheets("Лист3").Range("A1").Value = ScrollBar1.Value ‘Рамещаем на Лист3 в ячейку А1 значение св-ва Value прокрутки ‘ это св-во должно соответствовать номеру месяца от 1 до 12 N_MES = Sheets(2).Range("A1").Value ‘Присваиваем переменной N_MES значение, равное числу из ячейки «А1», ‘с рабочего листа Лист3 (т.е. номер месяца) Sheets("Лист3").Select ‘Явно указываем на лист If N_MES = 1 Then ‘если это 1-й месяц Range("A3").Select ‘активизируем ячейку «А3» ElseIf N_MES = 2 Then Range("A4").Select: ElseIf N_MES = 3 Then Range("A5").Select ElseIf N_MES = 4 Then Range("A6").Select: ElseIf N_MES = 5 Then Range("A7").Select ElseIf N_MES = 6 Then Range("A8").Select: ElseIf N_MES = 7 Then Range("A9").Select ElseIf N_MES = 8 Then Range("A10").Select: ElseIf N_MES = 9 Then Range("A11").Select ElseIf N_MES = 10 Then Range("A12").Select: ElseIf N_MES = 11 Then Range("A13").Select ElseIf N_MES = 12 Then Range("A14").Select End If End Sub
И такая же проблема с двумя полосами прокрутки:
Написать процедуру для обработки соответствующих событий таким образом, чтобы можно было активизировать любую ячейку таблицы, пользуясь горизонтальной и вертикальной полосами прокрутки.
Текст процедуры не более 3-х строк
Добейтесь такой работы программы, чтобы одна ячейка таблицы при любых положениях движков была активна.
Private Sub ScrollBar1_Change() Dim N_MES As String ScrollBar2.Value = 2 Sheets("Лист3").Select N_MES = "B" & ScrollBar1.Value Range(N_MES).Select Range(N_MES).Activate End Sub Private Sub ScrollBar2_Change() Sheets("Лист3").Select Cells(ScrollBar1.Value, ScrollBar2.Value).Select Cells(ScrollBar1.Value, ScrollBar2.Value).Activate End Sub