Форматирование таблицы
1. В блоке ячеек A2 : F2 - На вкладке выравнивание окна формат ячеек устанавливаем перенос текста по словам; - значения данных выравниваем по центру по горизонтали и по верхнему краю по вертикали; - устанавливаем шрифт “полужирный”, 2. Устанавливаем в столбцах A, B, C, E, F такую ширину столбцов, чтобы шапка таблицы была такой же, как показано на образце (рис. 8). 3. Выделяем блок ячеек A1:F1 и объединяем их, располагая информацию в центре. Устанавливаем в объединенной ячейке шрифт Arial Cyr, размер кегля 14, жирный, горизонтальное выравнивание – по центру, вертикальное – по нижнему краю. 4. Внутренние и внешние границы ячеек разделяем тонкими линиями, текст с данными таблицы сверху и снизу отделяем двойными тонкими линиями, объединяем ячейки A11:E11, информацию в объединенной ячейке выравниваем по правому краю. 5. Выделяем диапазоны ячеек A3:A10 и E3:E10 устанавливаем для них формат ячеек Числовой с количеством десятичных знаков, равным 0. 6. Выделяем диапазоны ячеек D3:D10 и F3:F11, и устанавливаем для них формат ячеек Денежный с количеством десятичных знаков, равным 2 и с обозначением денежных единиц в рублях. 7. Выделяем диапазон ячеек A3:C10 и устанавливаем для него выравнивание по горизонтали по левому краю. 8. В диапазоне ячеек D3:D10 устанавливаем горизонтальное выравнивание по центру. 9. В диапазоне ячеек E3:F10 станавливаем горизонтальное выравнивание по правому краю. 10. Слово «Итого:» объединенной ячейки и общую сумму поставок товаров выделяем жирным шрифтом и курсивом. В результате получим макрос: Sub Форматирование() ' ' Форматирование Макрос ' Макрос записан 09.10.2015 (Neklyudova) ' Range("A2:F2").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlTop .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Font.Bold = True Columns("A:A").ColumnWidth = 11 Columns("A:A").ColumnWidth = 8.71 Columns("B:B").ColumnWidth = 13 Columns("B:B").ColumnWidth = 14.29 Columns("B:B").ColumnWidth = 15.43 Columns("C:C").ColumnWidth = 12.14 Columns("D:D").ColumnWidth = 11.14 Columns("E:E").ColumnWidth = 11.71 Columns("E:E").ColumnWidth = 11.86 Columns("F:F").ColumnWidth = 15.57 Range("A1:F1").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge With Selection.Font .Name = "Arial" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With With Selection.Font .Name = "Arial" .Size = 14 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With Selection.Font.Bold = True Range("A2:F11").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Range("A11:E11").Select With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With Range("A3:F3").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlDouble .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Range("A10:F10").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlDouble .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Range("D3:D10,F3:F11").Select Range("F3").Activate Selection.NumberFormat = "#,##0.00$" Range("A3:C10").Select With Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("D3:D10").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("E3:F10").Select With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("A11:F11").Select Selection.Font.Bold = True Selection.Font.Italic = True End Sub
Ввод данных Ниже приведена таблица с исходными данными (Код товара, Наименование товара, Единица измерения, Цена, Количество) и результатными данными, полученными при выполнении макросов ЗаголовокШапка, Формулы, Форматирование и ВводДанных.
Рис.19. Результат выполнения макросов В результате записи макроса получим следующий программный код: Sub ВводДанных() ' ' ВводДанных Макрос ' Макрос записан 09.10.2054 (Neklyudova) ' Range("A3").Select ActiveCell.FormulaR1C1 = "101" Range("B3").Select ActiveCell.FormulaR1C1 = "Товар1" Range("C3").Select ActiveCell.FormulaR1C1 = "шт." Range("D3").Select ActiveCell.FormulaR1C1 = "100" Range("E3").Select ActiveCell.FormulaR1C1 = "500" Range("A4").Select ActiveCell.FormulaR1C1 = "102" Range("B4").Select ActiveCell.FormulaR1C1 = "Товар2" Range("C4").Select ActiveCell.FormulaR1C1 = "шт." Range("D4").Select ActiveCell.FormulaR1C1 = "200" Range("E4").Select ActiveCell.FormulaR1C1 = "5000" Range("A5").Select ActiveCell.FormulaR1C1 = "103" Range("B5").Select ActiveCell.FormulaR1C1 = "Товар3" Range("C5").Select ActiveCell.FormulaR1C1 = "шт." Range("D5").Select ActiveCell.FormulaR1C1 = "300" Range("E5").Select ActiveCell.FormulaR1C1 = "50000" Range("A6").Select End Sub
Итак, в результате получен программный код, содержащий макросы, которые были получены при выполнении пунктов: - Ввод заголовка и “шапки” таблицы - Ввод расчётных формул - Форматирование таблицы - Ввод данных.
Option Explicit Sub ЗаголовокШапка() ' ' ЗаголовокШапка Макрос ' Макрос записан 09.01.2015 (Neklyudova) ' ActiveCell.FormulaR1C1 = "Поставка товаров" Range("A2").Select ActiveCell.FormulaR1C1 = "Код товара" Range("B2").Select ActiveCell.FormulaR1C1 = "Наименование товара" Range("C2").Select ActiveCell.FormulaR1C1 = "Единица измерения" Range("D2").Select ActiveCell.FormulaR1C1 = "Цена" Range("E2").Select ActiveCell.FormulaR1C1 = "Количество" Range("F2").Select ActiveCell.FormulaR1C1 = "Сумма" Range("F3").Select End Sub Sub Формулы()
' Формулы Макрос ' Макрос записан 09.10.2015 (Neklyudova) ' ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]" Range("F3").Select Selection.AutoFill Destination:=Range("F3:F10"), Type:=xlFillDefault Range("F3:F10").Select Range("E11").Select ActiveCell.FormulaR1C1 = "Итого:" Range("F11").Select ActiveCell.FormulaR1C1 = "=SUM(R[-8]C:R[-1]C)" Range("F12").Select Range("F12").Select End Sub Sub Форматирование() ' ' Форматирование Макрос ' Макрос записан 09.10.2015 (Neklyudova) ' Range("A2:F2").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlTop .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Font.Bold = True Columns("A:A").ColumnWidth = 11 Columns("A:A").ColumnWidth = 8.71 Columns("B:B").ColumnWidth = 13 Columns("B:B").ColumnWidth = 14.29 Columns("B:B").ColumnWidth = 15.43 Columns("C:C").ColumnWidth = 12.14 Columns("D:D").ColumnWidth = 11.14 Columns("E:E").ColumnWidth = 11.71 Columns("E:E").ColumnWidth = 11.86 Columns("F:F").ColumnWidth = 15.57 Range("A1:F1").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge With Selection.Font .Name = "Arial" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With With Selection.Font .Name = "Arial" .Size = 14 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontNone End With Selection.Font.Bold = True Range("A2:F11").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Range("A11:E11").Select With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With Range("A3:F3").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlDouble .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Range("A10:F10").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlDouble .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThick End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlInsideVertical) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Selection.Borders(xlInsideHorizontal).LineStyle = xlNone Range("D3:D10,F3:F11").Select Range("F3").Activate Selection.NumberFormat = "#,##0.00$" Range("A3:C10").Select With Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("D3:D10").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("E3:F10").Select With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Range("A11:F11").Select Selection.Font.Bold = True Selection.Font.Italic = True End Sub Sub ВводДанных() ' ' ВводДанных Макрос ' Макрос записан 09.10.2015 (Neklyudova) ' Range("A3").Select ActiveCell.FormulaR1C1 = "101" Range("B3").Select ActiveCell.FormulaR1C1 = "Товар1" Range("C3").Select ActiveCell.FormulaR1C1 = "шт." Range("D3").Select ActiveCell.FormulaR1C1 = "100" Range("E3").Select ActiveCell.FormulaR1C1 = "500" Range("A4").Select ActiveCell.FormulaR1C1 = "102" Range("B4").Select ActiveCell.FormulaR1C1 = "Товар2" Range("C4").Select ActiveCell.FormulaR1C1 = "шт." Range("D4").Select ActiveCell.FormulaR1C1 = "200" Range("E4").Select ActiveCell.FormulaR1C1 = "5000" Range("A5").Select ActiveCell.FormulaR1C1 = "103" Range("B5").Select ActiveCell.FormulaR1C1 = "Товар3" Range("C5").Select ActiveCell.FormulaR1C1 = "шт." Range("D5").Select ActiveCell.FormulaR1C1 = "300" Range("E5").Select ActiveCell.FormulaR1C1 = "50000" Range("A6").Select End Sub
Сохраните книгу, содержащую эти макросы под именем Запись_макроса_исходная. Макросы можно корректировать в редакторе кода VBE. Например, макрос ЗаголовокШапка можно упростить следующим образом: - удалить инструкции активизации ячеек; - удалить строки кода, определяющие свойства шрифта надписей; - использовать инструкцию присваивания в стиле Range. В результате произведенных изменений получим следующий код: Option Explicit Sub ЗаголовокШапка() ' ' ЗаголовокШапка Макрос ' Макрос записан 09.10.2015 (Neklyudova) ' Range("A1") = "Поставка товаров" Range("A2") = "Код товара" Range("B2") = "Наименование товара" Range("C2") = "Единица измерения" Range("D2") = "Цена" Range("E2") = "Количество" Range("F2") = "Сумма" End Sub Макрос Формулы можно откорректировать так: Sub Формулы() ' ' Формулы Макрос ' Макрос записан 09.10.2015 (Neklyudova) ' Range("F3").Select ActiveCell = "=D3*E3" Selection.AutoFill Destination:=Range("F3:F10"), Type:=xlFillDefault Range("E11") = "Итого:" Range("F11") = "=SUM(F3:F10)" End Sub Примечание Если нет опасности перегрузить оперативную память компьютера или пользователь не обладает достаточной квалификацией в области программирования на VBA, то лучше оставить макрос таким, как его спроектировал Excel. Пока у вас нет достаточных знаний для полного понимания кода откорректируем только один макрос ЗаголовокШапка. Создайте копию книги Запись_макроса_исходная под именем Запись_макроса_отредактированная. При этом в новую книгу будут скопированы все макросы из исходной книги.Измените макрос ЗаголовокШапка как показано выше. Чтобы удостовериться в том, что при выполнении изменённого макроса получился тот же самый результат, очистить заполненные ячейки, выполнить записанный макрос и сравнить результат с рис.11. Процедуры не могут в своём составе содержать вложенные процедуры, но они могут вызывать друг друга. Одним из способов вызова процедуры является использование оператора Call. Добавив в конец макроса ЗаголовокШапка три оператора Call Формулы Call Форматирование Call ВводДанных макросы Формулы, Форматирование и ВводДанных будут выполняться при вызове на выполнение макроса ЗаголовокШапка, в результате чего на рабочий лист будут выведены название таблицы и заголовки столбцов и выполнены инструкции макросов Формулы, Форматирование и ВводДанных, т.е. получена таблица, представленная на рис. 8. Создайте копию книги Запись_макроса_отредактированная под именем Запись_макроса_шаблон. Удалите листы: Формулы, Форматирование и ВводДанных. Переименуйте лист Шапка в Поставка товаров. Измените макрос ЗаголовокШапка, сохраните книгу с поддержкой макросов. Итак, у вас имеются три рабочих книги: Запись_макроса_исходная Запись_макроса_отредактированная Запись_макроса_шаблон В рабочей книге Запись_макроса_исходная хранятся макросы, полученные в результате записи в кодах VBA действий пользователя: ЗаголовокШапка, Формулы, Форматирование и ВводДанных. На рабочем листе Шапка приведён результат выполнения макроса Шапка, на листе Формулы – последовательности макросов Шапка ® Формулы, на листе Форматирование – последовательности макросов Шапка ® Формулы ® Форматирование и на листе ВводДанных – макросов Шапка ®Формулы ® Форматирование ® ВводДанных. Конечно, все действия пользователя, включая ввод исходных данных, можно записать в один макрос, но это неудобно при отладке макросов. В рабочей книге Запись_макроса_отредактированная макрос ЗаголовокШапка отредактирован c целью его упрощения. В обеих этих книгах для наглядности рабочие листы: Лист1, Лист2, Лист3, Лист4 – переименованы соответственно в Шапка, Формулы, Форматирование и ВводДанных. В рабочей книге Запись_макроса_Шаблон содержится один рабочий лист Поставка товаров, и в конец макроса ЗаголовокШапка добавлены инструкции вызова макросов Формулы, Форматирование и ВводДанных: В данной лабораторной работе макрос ВводДанных приведён в качестве иллюстрации возможности записи в макрос исходных данных. На практике это может быть использовано при вводе данных в таблицы, в которых меняется небольшая часть их значений.
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (440)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |