КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Сколько страниц на всех листах?
Проверка, защищен ли рабочий лист Проверка существования листа Вставка колонтитула с именем книги, листа и текущей датой Блокировка использования контекстного меню Новый лист — через макрос Рабочий лист Листинг 2.11. Создание нового листа Sub NewSheet() Worksheets.Add End Sub Листинг 2.12. Блокировка контекстного меню Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Static intCount As Integer ' Счетчик нажатий кнопки мыши Dim x As Integer, y As Integer
' Блокировать обработку щелчка правой кнопкой мыши Cancel = True ' Отображение текстового поля с количеством щелчков правой _ кнопкой мыши x = Target.Left y = Target.Top intCount = intCount + 1 ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _ x, y, 35, 20).TextFrame.Characters.Text = intCount End Sub Листинг 2.13. Вставка колонтитула Sub AddPageHeader() Dim i As Integer With ThisWorkbook ' Вставка колонтитулов на все листы рабочей книги For i = 1 To.Worksheets.Count - 1 .Worksheets(i).PageSetup.LeftHeader =.FullName .Worksheets(i).PageSetup.CenterHeader = Worksheets(i).Name .Worksheets(i).PageSetup.RightHeader = Now() Next End With End Sub Листинг 2.14. Проверка существования листа Function dhSheetExist(strSheetName As String) As Boolean Dim objSheet As Object
On Error GoTo HandleError ' При ошибке перейти на HandleError ' Пытаемся получить ссылку на заданный лист objSheet = ActiveWorkbook.Sheets(strSheetName) ' Ошибки не возникло - лист существует dhSheetExist = True Exit Function
HandleError: ' При попытке получить доступ к листу с заданным именем _ возникла ошибка, значит, такого листа не существует dhSheetExist = False End Function Листинг 2.15. Проверка наличия защиты рабочего листа Sub IsSheetProtected() ' Проверка, установлена ли защита на содержимое листа If Worksheets(1).ProtectContents Then MsgBox "Защита листа включена" Else MsgBox "Защита листа не включена" End If End Sub Листинг 2.16. Подсчет страниц Sub GetPrintPagesCount() Dim wshtSheet As Worksheet Dim intPagesCount As Integer
' Суммирование количества страниц, необходимых для печати всех _ листов книги For Each wshtSheet In Worksheets intPagesCount = intPagesCount + (wshtSheet.HPageBreaks.Count + 1) * _ (wshtSheet.VPageBreaks.Count + 1) Next MsgBox "Всего страниц: " & intPagesCount End Sub Автоматический пересчет данных таблицы при изменении ее значений Листинг 2.17. Переформирование таблицы Sub Worksheet_Change(ByVal Target As Range) Dim rgData As Range Dim cell As Range Dim dblMax As Double, dblMin As Double, dblAverage As Double
' Получение контролируемого диапазона ячеек Set rgData = Range("B2:B11") ' Проверка, не входит ли измененная ячейка в контролируемый _ диапазон If Not (Application.Intersect(Target, rgData) Is Nothing) Then If Application.WorksheetFunction.CountA(rgData) > 0 Then ' Изменена ячейка из контролируемого диапазона ' Заново рассчитываем минимальное, максимальное и среднее _ значения в контролируемом диапазоне ячеек dblMin = Application.WorksheetFunction.Min(rgData) dblMax = Application.WorksheetFunction.Max(rgData) dblAverage = Application.WorksheetFunction.Average(rgData)
' Проверяем каждую ячейку из контролируемого диапазона _ и изменяем цвет шрифта ячеек с минимальным и максимальным _ значениями, а также помечаем желтым цветом ячейки _ со значениями больше среднего For Each cell In rgData If cell.Value = dblMax Then ' Ячейку с максимальным значением выделим красным цветом cell.Font.Bold = True cell.Font.Color = RGB(255, 0, 0) ElseIf cell.Value = dblMin Then ' Ячейку с минимальным значением выделим синим цветом cell.Font.Bold = False cell.Font.Color = RGB(0, 0, 255) Else cell.Font.Bold = False cell.Font.Color = RGB(0, 0, 0) End If
If cell.Value > dblAverage Then ' Значение в ячейке больше среднего - выделим ее _ желтым цветом cell.Interior.Color = RGB(255, 255, 0) Else cell.Interior.ColorIndex = xlNone End If Next Else rgData.Interior.ColorIndex = xlNone End If End If End Sub
Дата добавления: 2015-06-25; Просмотров: 322; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |