Объект Worksheet и семейство Worksheets

В иерархии Excel объект Worksheet идет сразу после объекта Workbook и представляет рабочий лист книги и входит в семейство (набор) Worksheets.

Ссылку на объект можно получить через команды:

Worksheets(Index) –‘Возвращает ссылку на объект по индексу в наборе, в качестве индекса может выступать имя листа или его номер в наборе.

Пример:

Worksheets(“Лист1”).Activate

Worksheets(1).Activate

Activesheet – ‘Возвращает ссылку на активный лист.

Пример:

Activesheet.Range(“a1”) =1

Свойства объекта Worksheet и семейства Worksheets

ActiveCell – ‘Возвращает активную ячейку активного рабочего листа.

Cells – ‘Возвращает ссылку на диапазон ячеек листа.

Cells(< строка > , < столбец >) –‘Возвращает ссылку на ячейку с указанными координатами.

 

Columns(< столбец >) –‘Возвращает ссылку на столбец. В качестве параметра может быть имя или номер столбца.

Пример:

Worksheets(1).Columns(“a”)=1

или

Worksheets(1).Columns(1)=1

Rows(< строка >) –‘Возвращает ссылку на строку. В качестве параметра может быть номер строки.

Пример:

Worksheets(1).Rows(1)=1

Name – ‘Возвращает имя активного рабочего листа.

Range(< диапазон ячеек>) – ‘Возвращает ссылку на указанный диапазон ячеек.

UsedRange – ‘Возвращает ссылку на используемый диапазон листа.

Пример:

Worksheets(“лист1”).UsedRange.Value=1

Count – ‘Возвращает количество листов в книге.

Item(Index) - возвращает ссылку на лист из набора, где Index – это номер или имя листа в наборе.

Пример:

Worksheets.Item(“Лист1”).Activate

или

Worksheets.Item(1).Activate

Visible –‘Определяет отображение рабочего листа в книге.

Допустимые значения:

-True – рабочий лист выводится на экран;

-False – рабочий лист невидим (скрыт), но его можно отобразить на экране с помощью команды

<Формат/Лист/Отобразить>(Format, Sheet, Show);

xlVeryHidden – рабочий лист скрыт и его можно отобразить на экране только программно.

Примеры:

Sub Пусто()

Worksheets(“Лист3”).Visible=False

End Sub

Sub Открыто()

Worksheets(“Лист3”).Visible=True

End Sub

--------------------------------------------------------------

Sub Пусто1()

Worksheets(“Лист4”).Visible=xlVeryHidden

End Sub

-------------------------------------------------------------

Sub Открыто1()

Worksheets(“Лист4”).Visible=True

End Sub

UsedRange –‘Возвращает диапазон, то есть объект Range, содержащий данные.

Пример: Worksheets(1).UsedRange.Clear –‘Очищается диапазон первого рабочего листа с данными.

 

38.Объект Range содержится в объекте Worksheet и состоит из одной ячейки или диапазона ячеек на отдельном рабочем листе. В следующих разделах будут рассмотрены три способа задания ссылки на объекты Range в программе VB А.

¦ Свойство Range объекта класса Worksheet или Range .

¦ Свойство Cells объекта Worksheet .

¦ Свойство Offset объекта Range .

 

Свойство Range

Свойство Range возвращает объект Range . Из справочных сведений по свойству Range вы узнаете, что к данному свойству обращаются с помощью нескольких вариантов синтаксиса:

объект. Range ( ячейка1) ;

объект. Range ( ячейка1, ячейка2).

Свойство Range относится к одному из двух типов объектов: объекту Worksheet или объекту Range . В данном случае ячейка! и ячемка2 указывают параметры, которые Excel будет воспринимать как идентифицирующие диапазон (в первом случае) или очерчивающие диапазон (во втором случае). Ниже следует несколько примеров использования метода Range .

Далее приведена инструкция, которая вводит значение в указанную ячейку: значение 1 вводится в ячейку А1 на листе Лист1 активной рабочей книги:

Worksheets("Лист1").Range("А1").Value = 1

Свойство Range также поддерживает имена , определенные в рабочих книгах. Поэтому если ячейка называется Ввод, то для введения значения в эту ячейку может использоваться оператор

Worksheets( " Лист 1”). Range(" Ввод ").Value = 1

В следующем примере в диапазон из 20-ти ячеек на активном листе вводится одинаковое зна­чение. Если активный лист не является рабочим листом, то отображается сообщение об ошибке:

ActiveSheet.Range("Al:B10").Value = 2

Приведенный ниже пример приведет к тому же результату, что и предыдущий.

Range (" Al ", " B 10") = 2

Отличие заключается лишь в том, что опущена ссылка на лист, поэтому предполагается активный рабочий лист. Кроме того, пропущено свойство, поэтому используется свойство по умолчанию (для объекта Range это свойство Value ). В этом примере используется второй синтаксис ссылки на свойство Range . В данном случае первый аргумент — это левая верхняя ячейка диапазона, а второй аргумент— это ячейка в правом нижнем углу диапазона.

В следующем примере для получения пересечения двух диапазонов применяется оператор пересечения Excel (пробел). Пересечением является одна ячейка— Сб. Следовательно, дан­ный оператор вводит значение 3 в ячейку С б:

Range ("С1:С10” “А6:Е6") = 3

Наконец, в следующем примере значение 4 вводится в пять ячеек, т.е. в независимые диа­пазоны. Запятая выполняет роль оператора объединения:

Range (" A 1, A 3,А5,А7,А9") = 4

До настоящего момента во всех рассмотренных примерах использовалось свойство Range объекта Worksheet . Вы также можете использовать свойство Range объекта Range . Сначала будет непросто, однако постарайтесь разобраться.

Ниже показан пример использования свойства Range объекта Range (в данном случае объектом Range является активная ячейка). В этом примере объект Range рассматривается как левая верхняя ячейка на рабочем листе, а затем в ячейку, которая в таком случае была бы В2, вводится значение 5. Другими словами, полученная ссылка является относительной для верхнего левого угла объекта Range . Следовательно, следующий оператор вводит значение 5 в ячейку, расположенную справа внизу от активной ячейки:

ActiveCell . Range ("В2”) = 5

Существует также намного более понятный способ обратиться к ячейке по отношению к диапазону— это свойство Offset (см. далее в этой главе).

39. Способы определения Range

1)самый простой и очевидный способ — воспользоваться свойством Range. Это свойство предусмотрено для объектов Application, Worksheet и самого объекта Range (если вы решили создать новый диапазон на основе уже существующего).

2) воспользоваться свойством Cells. Возможностей у этого свойства меньше — мы можем вернуть диапазон, состоящий только из одной ячейки. Зато мы можем использовать более удобный синтаксис (с точки зрения передачи переменных, перехода в любую сторону на любое количество ячеек и т.п.).

3) воспользоваться многочисленными свойствами объекта Range, которые позволяют изменить текущий диапазон или создать на основе его новый.

40.

41.

42.

43.

44.

45.

46.

47.

48.

49.

50.

Использование объекта Range

С помощью объекта Range можно искать текст, ничего не отображая в пользовательском интерфейсе. Объект Find возвращает True, если найден текст, соответствующий условиям поиска, и False в противном случае. Если текст найден, он также переопределяет объект Range для соответствия условиям поиска.

 

Использование объекта Selection

Если для поиска текста используется объект Selection, все указанные условия поиска применяются только к выделенному в данный момент тексту. Если Selection является позицией курсора, поиск осуществляется по всему документу. Элемент, найденный в соответствии с условиями поиска, автоматически выделяется.

51. Приостановите выполнение программы.

Инструкции

Отобразится строка программы, на которой было прервано выполнение.

Выполните одно из следующих действий.

Для поочередного выполнения каждой строки программы, включая строки процедур, вызываемых из других процедур (с заходом в процедуры), нажмите кнопку Выполнить пошагово на панели инструментов Отладка.

Для поочередного выполнения каждой строки программы, но с выполнением вызываемых процедур (с обходом процедур), нажмите кнопку Шаг с обходом на панели инструментов Отладка.

Для выполнения программы с ее начала и до строки, предшествующей той, в которой находится курсор, с последующим прерыванием для перехода в пошаговый режим (выполнение до текущей позиции), выберите в меню Debug команду Run To Cursor.

Для выполнения остатка текущей процедуры с последующим возвратом на следующую строку в предыдущей процедуре в дереве вызовов нажмите кнопку Шаг с выходом на панели инструментов.

ПРИМЕЧАНИЕ. Для использования кнопки Выполнить пошагово не обязательно приостанавливать выполнение программы. В окне программы редактора Visual Basic поместите курсор в процедуру, которую требуется пройти в пошаговом режиме, и нажмите кнопку Выполнить пошагово на панели инструментов.

Пользователь имеет возможность попеременно использовать все три разновидности пошагового режима в зависимости от того, какие части программы требуется проверить.

52.

53.