Uploaded by Инна Тарабаева

КУРСОВАЯ Информатика

advertisement
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра прикладной математики
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе по дисциплине «Информатика»
на тему: «Создание автоматизированных бланков отчетности в MSExcel с
использованием встроенного языка VBA for applications»
Выполнил студент гр.____________
____________
Руководитель работы
_______________________________
Донецк, 2019
1
Содержание
Введение ...................................................................................................................... 2
1. Постановка задачи...................................................................................................... 3
2. Теоретическая часть ................................................................................................... 5
3. Описание алгоритма решения задачи ...................................................................... 7
4. Инструкция пользователя ........................................................................................ 18
5. Заключение ............................................................................................................... 19
Список использованных источников и литературы ............................................. 20
Приложения .............................................................................................................. 21
2
ВВЕДЕНИЕ
Microsoft Excel (также иногда называется Microsoft Office Excel) —
программа для
работы
с электронными
таблицами,
созданная
корпорацией Microsoft для Microsoft Windows, Windows NT и Mac OS, а
также Android, iOS и Windows Phone. Она предоставляет возможности
экономико-статистических расчетов, графические инструменты и, за
исключением
Excel
2008
под Mac
OS
X,
язык
макропрограммирования VBA (Visual Basic for Application). Microsoft Excel
входит в состав Microsoft Office и на сегодняшний день Excel является одним из
наиболее популярных приложений в мире.
В данной работе представлены автоматизированные отчеты, которые
позволяют формировать ведомость учета услуг междугородней телефонной
связи для абонентов квартирного сектора
Курсовая работа была выполнена на ПК с такими характеристиками:
Модель Lenovo IdeaPad 100S-11IBY
Дисплей 11.6"/1366x768 пикс.
Операционная Windows 10
Процессор Intel Atom Z3735F 1.33ГГц
3
1 ПОСТАНОВКА ЗАДАЧ
Справочные данные о тарифах на услуги междугородней телефонной
связи для абонентов квартирного сектора приведены на рис. 1. Бланк
«Квитанция для оплаты телефонных разговоров» представлен на рис. 2.
Поля Дата, Наименование города, Минут заполняются пользователем.
Необходимо:
1. построить таблицу по приведенным ниже табличным данным (рис. 1);
2. автоматизировать заполнение бланка «Квитанция для оплаты телефонных
разговоров» (рис. 2), используя данные справочных таблиц (рис. 1);
3. рассчитать и заполнить форму «Выборка оплаты по выбранной дате и
городу» (рис. 3), где по вводимой пользователем дате и наименованию города с
помощью макроса из таблицы «Квитанция для оплаты телефонных
разговоров» выбирается необходимая информация;
4. заполнить форму «Итоговые
суммы по городам» (рис.4), в которой
выполняется расчет общей суммы оплаты по каждому городу
с помощью
функции, определенной разработчиком проекта.
Тарифы на услуги междугородней телефонной связи ОАО
"Ростелеком" для абонентов квартирного сектора
Наименование города
Код города
в рабочие
в выходные дни,
дни, руб.
руб.
Волгоград
8442
5,50
3,20
Киров
8332
5,50
3,20
Новосибирск
3832
6,50
3,80
Пенза
8412
4,50
2,50
Челябинск
3442
6,50
3,80
Рис. 1. Тарифы на услуги междугородней телефонной связи для абонентов
квартирного сектора
4
Квитанция для оплаты телефонных разговоров
Номер
телефона
555-44-33
Наименование
Дата
Код города
города
Стоимость,
Минут
15.01.2006
2
16.01.2006
6
17.01.2006
8
18.01.2006
3
23.01.2006
10
Итого
Рис. 2. Квитанция для оплаты телефонных разговоров
Введите дату __________ Город _____________
Стоимость,
Дата
Минут
руб.
Итого
Рис. 3 Выборка оплаты по выбранной дате и городу
Наименование города
Стоимость, руб.
Волгоград
Киров
Пенза
Челябинск
Новосибирск
Рис. 4 Итоговые суммы по городам
руб.
5
2 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Курсовая работа была выполнена в программе Microsoft Excel, которая
предназначена для работы с электронными таблицами, созданная корпорацией
Microsoft для Microsoft Windows. Она предоставляет возможности экономикостатистических расчетов, графические инструменты и, за исключением Excel
2008 под Mac OS X, язык макропрограммирования VBA. Microsoft Excel входит
в состав Microsoft Office и на сегодняшний день Excel является одним из
наиболее популярных приложений в мире. В ходе ее выполнения были
использованы различные функции. Рассмотрим их.
1.
Функция ЕСЛИ возвращает одно значение, если указанное условие
дает в результате значение ИСТИНА, и другое значение, если условие дает в
результате значение ЛОЖЬ. Например, формула =УСЛИ(А1>10, “Больше 10”,
“10 или меньше”) возвращает строку “Больше 10”, если значение в ячейке А1
больше 10, и “10 или меньше”, если оно меньше или равно 10.
2.
Функция ЕСЛИОШИБКА в Microsoft Excel похожа на функцию
ЕСЛИ. Данная функция возвращает указанное значение, если вычисление по
формуле вызывает ошибку; в противном случае функция возвращает результат
формулы. Функция ЕСЛИОШИБКА позволяет перехватывать и обрабатывать
ошибки в формулах.
3.
Функция ПРОСМОТР возвращает значение из строки, столбца или
массива. Функция дает две синтаксических формы: векторную и форму
массива.
4.
Функция ИЛИ возвращает значение ИСТИНА, если хотя бы один из
аргументов имеет значение ИСТИНА или ЛОЖЬ, если все аргументы имеют
значение ЛОЖЬ.
5.
Функция ДЕНЬНЕД возвращает день недели, соответствующий
дате. По умолчанию день недели определяется как целое число в интервале от 1
(воскресенье) до 7 (суббота).
6
6.
Макрокоманда, макроопределение или макрос
– программный
алгоритм действий, записанный пользователем. Часто макросы применяют для
выполнения рутинных действий. А также макрос – это символьное имя в
шаблонах, заменяемое при обработке препроцессором на последовательность
символов, например: фрагмент html-страницы в веб-шаблонах, или одно слово
из словаря синонимов в синонимизаторах.
7.
Visual Basic for Applications (VBA, Visual Basic для приложений) –
немного упрощенная реализация языка программирования Visual Basic,
встроенная
в
линейку
продуктов
Microsoft
Office.
VBA
является
интерпретируемым языком. Как и следует из его названия, VBA близок к Visual
Basic. VBA, будучи языком, построенным на COM, позволяет использовать ее
все доступные в операционной системе COM объекты и компоненты ActiveX.
7
3 ОПИСАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧ
Для решения задачи необходимо:
1. Запустить табличный процессор MS Excel.
2. Создать книгу с именем «Курсовая».
3. Лист 1 переименовать в лист с названием тарифы.
4. На рабочем листе тарифы MS Excel создать таблицу базового прайс-листа
и заполнить ее исходными данными (см. рис. 1). На листе создать
именованный диапазон город, который необходимо использовать для
заполнения данными других таблиц и как аргумент функций.
Рис. 1 Фрагмент листа тарифы
5. Лист 2 переименовать в лист с названием Квитанция для оплаты.
6. Создание бланка формы «Квитанция для оплаты» необходимо
выполнять автоматически, а следовательно необходимо создать с
помощью
макрорекордера
макрос,
который
запишет
последовательность действий, создающих бланк формы.
Для того чтобы создать макрос необходимо выполнить следующие
действия:
 выбрать вкладку Вид, а затем щелкнуть на стрелке направленной вниз
рядом с кнопкой
и выбрать опцию Запись макроса. Заполнить
диалоговое окно Запись макроса (см. рис. 2);
8
Рис. 2. Диалоговое окно Запись макроса
 выполнить удаление с листа предыдущей информации;
 создать структуру таблицы, в которой будет содержаться список заказов,
выполняемых предприятием, используя для ввода данных поля со
списками, там где это необходимо;
 в ячейку C2 листа Квитанция для оплаты ввести следующую формулу
=ЕСЛИОШИБКА(ПРОСМОТР(B2;Код;Тарифы!$A$2:$A$5);"
")
и
скопировать ее в смежные ячейки вниз по столбцу;
 в ячейку E2 листа Квитанция для оплаты ввести следующую формулу
=ЕСЛИОШИБКА(ЕСЛИ(ИЛИ(ДЕНЬНЕД(A2;2)=6;ДЕНЬНЕД(A2;2)=7);
ПРОСМОТР(B2;Код;Тарифы!$D$2:$D$5);ПРОСМОТР(B2;Код;Тарифы!
$C$2:$C$5))*D2;" ") и скопировать ее в смежные ячейки вниз по
столбцу;
 по завершении выполнения требуемых действий необходимо выбрать
вкладку Вид, а затем щелкнуть на стрелке направленной вниз рядом с
кнопкой
и выбрать опцию Остановить запись;
9
 для того, чтобы с рабочей книгой мог работать пользователь, не
являющийся разработчиком проекта, необходимо закрепить выполнение
макроса за кнопкой
, для этого нужно:
 выбрать вкладку Разработчик, а затем щелкнуть на стрелке
направленной вниз рядом с кнопкой Вставить (см. рис. 3) и в
списке Элементы управления выбрать управляющий элемент
Кнопка;
 разместить управляющий элемент Кнопка на рабочем листе
список заказов и назначить ей макрос Список_заказов_бланк (см.
рис. 4), переименовать кнопку, дать ей имя Бланк.
Рис. 3 Добавление элемента управления на лист MS Excel
10
Рис. 4. Назначение макроса элементу управления Кнопка: щелчок мыши по
кнопке запустит на выполнение назначенный ей макрос
В результате с помощью щелчка мышью по кнопке Бланк можно
сформировать бланк формы Квитанция для оплаты
(см. рис. 5).
Следующим этапом решения задачи является ввод в бланк формы исходных
данных (см. рис. 6).
Текст кода макроса приведен в приложении 4.
Рис. 5. Бланк формы Квитанция для оплаты
11
Рис. 6. Заполненная форма Квитанция для оплаты
7. Добавить новый лист и переименовать в лист с названием выборка по
дате и городу. Создание бланка формы «выборка по дате и городу»
необходимо выполнять автоматически, а следовательно необходимо
создать с помощью макрорекордера макрос, который запишет
последовательность действий, создающих бланк формы. Создание
макроса с помощью макрорекордера и назначение его выполнения
кнопке
нужно
выполнить
аналогично
предыдущему
заданию.
Результаты работы макроса по созданию бланка формы «выборка по
дате и городу» приведены на рисунке 7.
Рис. 7. Бланк формы «выборка по дате и городу»
Обработку формы необходимо выполнить с помощью процедуры, блоксхема которой представлена на рисунке 8, а текст кода приведен в
приложении 1.
12
Рис. 8. Блок-схема процедуры обработки формы «выборка по городу и дате»
Порядок создания процедуры обработки формы «выборка по городу и
дате»:
 перейти в редактор VBA
щелкнуть на кнопке
;
выбрав вкладку Разработчик, а затем
13
 в окне Редактор Visual Basic (см. рис. 9) в меню редактора выбрать
последовательно опции
Insert Module. В появившемся окне
создать процедуру, которая решает поставленную задачу;
Рис. 9. Окно Редактор Visual Basic
 исходным данным для обработки является введенные в ячейки B1 и
D1 значения ;
 проверку выполнения макроса выполнить щелкнув на кнопке
окна Редактор Visual Basic
 результаты работы макроса, вызываемого на выполнение щелчком
мыши по кнопке Обработать приведены на рисунке 10.
Рис. 10. Заполненная форма выборки данных по названию города и дате
14
8. Добавить новый лист и переименовать в лист с названием итоговые
суммы по городам. Создание бланка формы «Итоговые суммы по
городам» необходимо выполнять автоматически, а следовательно
необходимо создать с помощью макрорекордера макрос, который
запишет последовательность действий, создающих бланк формы.
Создание макроса с помощью макрорекордера и назначение его
выполнения кнопке выполнить аналогично предыдущим заданиям.
Результаты работы макроса по созданию формы «Форма заказа по
номеру» приведены на рисунке 11.
Рис. 11. Бланк формы «Итоговые суммы по городам»
Обработку
формы
необходимо
выполнить
с
помощью
функции
пользователя, блок-схема которой представлена на рисунке 12, а текст кода
приведен в приложении 1.
15
Рис. 11. Блок-схема процедуры обработки формы «Итоговые суммы по
городам»
Порядок создания функции пользователя для обработки формы «Итоговые
суммы по городам» аналогичен предыдущим заданиям.
После ввода кода функции, необходимо перейти на лист MS Excel
Итоговые суммы по городам и щелкнуть на ячейке B2, где будет
рассчитываться итоговая сумма для города, наименование которого введено
в ячейку A2. Затем вызвать мастер функции и в категории Определенные
пользователем выбрать функцию общая_сумма (см. рис. 12), а затем в
16
появившемся окне указать аргументы функции (см. рис. 13), скопировать
полученную формулу в смежные ячейки.
Рис. 12. Выбор с помощью мастера функции, созданной пользователем
Рис. 13. Диалоговое окно Аргументы функции для функции, созданной
пользователем
Сформированная форма «Итоговые суммы по городам» приведены на
рисунке 14.
17
Рис. 14. Заполненная форма «Итоговые суммы по городам»
18
4 ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ
Для работы с книгой необходимо:
1. Запустить программу MS Excel.
2. Открыть книгу «Курсовая работа».
3. Открыть лист «квитанция для оплаты», нажать на кнопку «Бланк 1»,
которая запустит наш макрос. Он очистит ячейки, создаст таблицу и
запишет необходимые формулы.
4. Необходимо заполнить таблицу данными.
5. Перейти на лист «выборка по дате и городу»
6. Нажать кнопку «Бланк», которая создаст таблицу.
7. Выбрать название города в ячейке D1 и ввести дату в ячейку B1. После
нажать на кнопку «код». Будут выполнены все необходимые нам
расчеты.
8. Перейти на лист «Итоговые суммы по городам».
9. Нажать на кнопку «Бланк» которая создаст таблицу.
10.Вызвать функцию «общая сумма» в ячейке В2 в качестве Аргумента
Ячейку А2, которая посчитает общую сумму по городам.
11.Сохранить информацию.
19
5 ЗАКЛЮЧЕНИЕ
Все задачи – создание таблиц, запись макросов и создание собственных
функций – были успешно выполнены. Был приобретен опыт работы с MS Excel,
приобрели
навыки
построения
таблиц
и
записи
макросов,
получили
возможность создавать свои собственный функции и писать инструкции для
посторонних пользователей.
В
процессе
решения
поставленных
задач
было
подтверждено
высказывание о том, что MS Excel чрезвычайно удобен для работы с
электронными таблицами и вычислениями в них. Его возможности охватывают
широкий круг задач, которые могут удовлетворить практически любой
пользователь, а простота использования позволяет практически любому
пользователю успешно справляться с работой в программе.
20
Список использованных источников и литературы
1. Экономико-математические модели и методы: Учеб. Пособие для студ.
экон. спец . БГУИР, всех форм обуч. / С.А. Поттосина, В.А.Журавлев. –
Мн.: БГУИР, 2003. – 94 с.: ил.
2. Алесинская Т.В. Учебное пособие по решению задач по курса
“Экономико-математические методы и модели”. Таганрог: Изд-во ТРТУ
2002, 153 с.
3. Расторгуев, Д.Н. Методические рекомендации к практическим занятиям
по компьютерному моделированию социально-экономических процессов.
– Ульяновск: УлГТУ, 2006. – 32 с.
4. Кутузов А.Л. Математические методы в экономике и менеджменте Учеб
пособие. СПб.: Изд-во СПб ГТУ 2001.
5. Курицкии Б.Я. Поиск оптимальных решений средствами Excel 7 0. СПб.:
БХВ – Санкт-Петербург, 1997.
21
Приложение
Sub квитанция_бланк()
'
' квитанция_бланк Макрос
'
'
Cells.Select
Selection.Clear
Range("A1").Select
ActiveCell.FormulaR1C1 = "дата"
Range("B1").Select
ActiveCell.FormulaR1C1 = "код города"
Range("C1").Select
ActiveCell.FormulaR1C1 = "город"
Range("D1").Select
ActiveCell.FormulaR1C1 = "минуты"
Range("E1").Select
ActiveCell.FormulaR1C1 = "стоимсоть, руб"
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
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Font.Bold = True
Range("A1:E17").Select
22
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
Columns("A:A").ColumnWidth = 13.43
Columns("B:B").ColumnWidth = 14.29
Columns("D:D").ColumnWidth = 18.86
Columns("C:C").ColumnWidth = 14.57
Columns("E:E").ColumnWidth = 16.43
Range("B2:B17").Select
With Selection.Validation
23
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Код"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Range("C2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(LOOKUP(RC[1],Код,Тарифы!R2C1:R5C1),"" "")"
Selection.AutoFill Destination:=Range("C2:C17"),
Type:=xlFillDefault
Range("C2:C17").Select
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(IF(OR(WEEKDAY(RC[-4],2)=6,WEEKDAY(RC[4],2)=7),LOOKUP(RC[-3],Код,Тарифы!R2C4:R5C4),LOOKUP(RC[3],Код,Тарифы!R2C3:R5C3))*RC[-1],"" "")"
Selection.AutoFill Destination:=Range("E2:E17"),
Type:=xlFillDefault
Range("E2:E17").Select
End Sub
Sub задание3()
'
' задание3 Макрос
'
'
Cells.Select
Selection.Clear
Range("A1").Select
ActiveCell.FormulaR1C1 = "Введите дату"
Range("C1").Select
ActiveCell.FormulaR1C1 = "Город"
Range("D1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
24
xlBetween, Formula1:="=город"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Range("B2").Select
ActiveCell.FormulaR1C1 = "Дата"
Range("C2").Select
ActiveCell.FormulaR1C1 = "Минуты"
Range("D2").Select
ActiveCell.FormulaR1C1 = "Стоимость"
Range("A1:D2").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Font.Bold = True
Columns("A:A").ColumnWidth = 13.71
Columns("A:A").ColumnWidth = 17.29
Columns("C:C").ColumnWidth = 13
Columns("D:D").ColumnWidth = 14.57
Range("B2:D15").Select
25
Selection.Borders(xlDiagonalDown).LineStyle
Selection.Borders(xlDiagonalUp).LineStyle =
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("A1:D1").Select
Selection.Borders(xlDiagonalDown).LineStyle
Selection.Borders(xlDiagonalUp).LineStyle =
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
= xlNone
xlNone
= xlNone
xlNone
26
.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("E3").Select
End Sub
Sub задание4()
Cells.Select
Selection.Clear
Range("A1").Select
ActiveCell.FormulaR1C1 = "наименование города"
Range("B1").Select
ActiveCell.FormulaR1C1 = "стоимость, руб."
Range("A1:B1").Select
27
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Font.Bold = True
Columns("A:A").ColumnWidth = 13.86
Columns("B:B").ColumnWidth = 24.86
Columns("A:A").ColumnWidth = 22.57
Columns("A:A").ColumnWidth = 25.86
Range("A2").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=город"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Selection.AutoFill Destination:=Range("A2:A7"),
Type:=xlFillDefault
Range("A2:A7").Select
28
Range("A1:B10").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("D5").Select
End Sub
29
Sub список()
Dim город As String, i As Integer, s As Double, n As
Integer, j As Integer, дата_ As Date
Dim дата(1 To 30) As Date, минуты(1 To 30) As Integer,
стоимость(1 To 30) As Double
город = Cells(1, 4)
дата_ = Cells(1, 2)
Range("A3:E25").Select
Selection.Clear
Sheets("Квитанция для оплаты ").Select
i = 1
j = 2
s = 0
Do While Cells(j, 3) <> ""
If Cells(j, 1) = дата_ And Cells(j, 3) = город Then
дата(i) = Cells(j, 1)
минуты(i) = Cells(j, 4)
стоимость(i) = Cells(j, 5)
s = s + стоимость(i)
i = i + 1
j = j + 1
Else
j = j + 1
End If
Loop
n = i - 1
Sheets("выборка по дате и городу").Select
j = 3
For i = 1 To n
Cells(j, 2) = дата(i)
Cells(j, 3) = минуты(i)
Cells(j, 4) = стоимость(i)
j = j + 1
Next i
Cells(j + 1, 3) = "Итого по " + город
Cells(j + 1, 4) = s
End Sub
30
Function общая_сумма(город As String) As Double
Dim i As Integer, s As Double
i = 2
s = 0
Do While Worksheets("Квитанция для оплаты ").Cells(i, 3)
<> ""
If Worksheets("Квитанция для оплаты ").Cells(i, 3) =
город Then
s = s + Worksheets("Квитанция для оплаты ").Cells(i, 5)
End If
i = i + 1
Loop
общая_сумма = s
End Function
Download