Данная коллекция представляет собой коллекцию листов (Sheets) в книге (WorkBook). Первое, что мы с Вами сделаем это получим количество листов в книге.
Sub Test()
MsgBox (Str(Application.Workbooks.Item("Test.xls").Sheets.Count))
End Sub
Но под листом понимается не только клетки, но и диаграмма. Так же как и лист для расчетов диаграмма будет включена в подсчет листов. Как посмотреть имена листов. Просто. Есть свойтсво Name:
Sub Test()
With Application.Workbooks.Item("Test.xls")
For x = 1 To.Sheets.Count
MsgBox (Sheets.Item(x).Name)
Next x
End With
End Sub
А как же лист с формулами отличить от диаграммы? Попробуйте так. Type вернет Вам тип. Только не знаю документированный способ это или нет.
Sub Test()
With Application.Workbooks.Item("Test.xls")
For x = 1 To.Sheets.Count
MsgBox (Sheets.Item(x).Type)
If Sheets.Item(x).Type = 3 Then
MsgBox Sheets.Item(x).Name
Next x
End With
End Sub
К коллекции листов есть возможность добавлять свои листы, для этого существует метод Add. Этот метод требует 4 параметра Add(Before, After, Count, Type). Все эти параметры необязательные. Первые два отвечают за место вставки листа. Дальше количество вставляемых листов Count и тип листа. Типы могут быть, например, такие. xlWorkSheet для расчетного листа, xlChart для диаграммы. Если местоположение не указывать, то лист будет вставляться относительно текущего листа.
|
|
Sub Test()
With Application.Workbooks.Item("Test.xls")
Sheets.Add
End With
End Sub
Метод Parent позволяет узнать какой книге принадлежит текущий лист.
Sub Test()
With Application.Workbooks.Item("Test.xls")
MsgBox (Sheets.Parent.Name)
End With
End Sub
Если у Вас есть желание, то некоторые листы можно убрать из обзора. Это бывает полезно, если у Вас есть константы или расчеты, которые Вы не хотите чтобы видели на экране в виде листов. Для этого можно использовать метод Visible. Устанавливая это свойство в TRUE или FALSE вы сможете убирать и показывать лист.
Sub Test()
With Application.Workbooks.Item("Test.xls")
.Sheets.Item("Лист5").Visible = False
End With
End Sub
Шаг 9 - Еще о Sheets
Один из полезных методов это метод Copy. Он позволяет создавать новый лист на основе существующего, то есть использовать лист как шаблон для других листов. Переименуйте любой лист в имя Test. Это можно сделать нажав правую кнопку мыши на названии листа и выбрав пункт меню Переименовать. Создайте на листе любое форматирование. after это лист, после которого произойдет вставка.
Sub Test()
With Application.Workbooks.Item("Test.xls")
Sheets("Test").Copy, after:=Sheets("Лист3")
End With
End Sub
У метода Copy есть особенность. Если не указывать параметры, то будет создана новая книга с копируемым листом.
Sub Test()
With Application.Workbooks.Item("Test.xls")
Sheets("Test").Copy
End With
End Sub
При необходимости передвинуть лист есть метод Move:
Sub Test()
With Application.Workbooks.Item("Test.xls")
Sheets("Test").Move, after:=Sheets("Лист3")
End With
End Sub
Так как коллекция эта содержит обьекты листа у неё есть несколько полезных методов. Один из них PrintPreview позволяющий вызывать предварительный просмотр.
|
|
Sub Test()
With Application.Workbooks.Item("Test.xls")
Sheets("Test").PrintPreview
End With
End Sub
Программным путем можно и выделять листы. Это метод Select. У него один параметр типа BOOL, если он установлен в TRUE, то происходит выделения листа, а если FALSE, то выделение объединяющее. Выделите другой лист и запустите следующий макрос.
Sub Test()
With Application.Workbooks.Item("Test.xls")
Sheets("Test").Select (False)
End With
End Sub