ПредишенСледващото

Нека разгледаме още един проблем. Нашата цел - да се разработи лесен за употреба приложение за изготвяне на заявление за канцеларски материали за офиса. Да започнем с това, то ще създаде нова работна книга на Microsoft Excel и на втория лист ще формират списък на продуктите с техните цени (фиг. 2.8). Този списък, както в предишния пример. организиран достатъчно просто - името и номера на цената му. Сега в първия работен лист, създаване на удобна форма за въвеждане на информация за реда (фиг. 2.9).

Помислете за първите технически стъпки, за да се изработи първия лист. Първо, изключете мрежата от екрана (това действие вече е настъпило по-рано). След това организира колоните А, В, С и D, както следва: установи външните и вътрешните граници, ще се въведе колони Белязаните клетки A3, B3, С3 и D3. Сега нека да преминем към местоположението на контролите украйна листа. В най-дясната контрол - "падащ списък". Името на обекта, ние трябва да продължим, и следователно за нейното име имот за задаване на "наш" стойност - Spk.

Как да създадете в VBA превъзхождат заявление за съставяне на заявлението в канцеларски материали за офиса - трикове

Фиг. 2.8. Ценоразпис на офис консумативи

Освен падащ върху етикета на лист е налице, над която клетка от листа е Междинна сума дума. Самият надпис се използва за под: двойката суми. Името й ще бъде използван в по-нататъшни действия и, следователно, ще се установи неговото име имот да Symma. В горната част на фиг. 2.9 са разположени три бутона - Ясно. Преизчисляване и Печат. Техните имена ще изберат sootvetstveshyu - десния символ. Изчислено и PRN.

На този интерфейс дизайн е пълна, и можете да отидете на програмиране. На първо място, е необходимо да се направи Spk списък се попълва автоматично, когато отворите книгата. Затова процедура се извършва при отваряне на книгата се организира, както следва (в списъка 2.11).

"Обявата 2.11. Процедура Workbook_Open Private Sub Workbook_Open () "Пречистване таблици списък (1) .Spk.Clear" преброяване на броя на записите в цената на втория лист п = 0 Докато таблици (2) .Cells (N + 2, 1) .Value <> "" N = N + 1 Wend "списък Пълнене За I = 1 до п а = таблици (2) .Cells (I + 1, 1) .Value "" _ Таблици (2) .Cells (I + 1, 2) .Value "Rub". Работни листове (1) .Spk.AddItem на Next "зануляване кутия Работни листове сума (1) .Symma.Caption =" 0 "," Набор списък Работни листове (1) .Spk.ListIndex = -1 End Sub

Как да създадете в VBA превъзхождат заявление за съставяне на заявлението в канцеларски материали за офиса - трикове

Фиг. 2.9. електронния формуляр за поръчка на канцеларски материали

Следващата задача в рамките на този проект е, че, когато се натисне по потребителски интереси поле елемент с информацията за списък е записан в следващия ред на първия лист. По този начин, ние включваме в прилагането на следващия ред, който се извършва по реда на Обява 2.12.

"Обявата 2.12. Процедурата се извършва чрез натискане на падащ Private Sub Spk_Click на () "в N броя на броене променлива редове вече напълнени форма за N = 0 докато клетките (N + 4, 1) .Value <> "" N = N + 1 Wend "Добави името на следващия елемент в прилагането на клетки (М + 4, 1) = таблици (2) .Cells (Spk.ListIndex + 2, 1) .Value" Добави цената следващите позиции от клетките цена ( N + 4, 2) = таблици (2) .Cells (Spk.ListIndex + 2, 2) функция .Value "се използва за въвеждане на броя InputBox ColTov = InputBox продукти (" Enter количество "," Въвеждане на броя единици ", 1) Клетките (М + 4, 3) изчисляване на сумата от позицията на стоки .Value = ColTov "Ако IsNumeric (ColTov) = вярно, тогава клетки (N + 4, 4) .Value = ColTov * Клетките (М + 4, 2) .Value Край Ако "броене на общия сбор Symma.Caption = CStr (Val (Symma.Caption) + клетки (М + 4, 4)) End Sub

Той използва стандартните функции Visual Basic: Val (за прехвърляне на данни от типа на тест в цифров), CStr (за прехвърляне на информация от цифров вид в текста) и IsNumeric (да се провери - дали изразът е цяло число). Фиг. 2.10 показва как образуват множество продукти.

кликвания върху бутоните процеса за преобразуване и чистотата, които ще разгледаме по-късно, но за сега се пристъпва към третия лист, който е показан на фиг. 2.11. Все още няма контрол, не - само текста и клетъчна форматиране. Преди десетия ред на третия лист на статичен текст - в резултат на поставянето и следващите форматиране данни в работен лист клетки. От началото на 11-ти ред, информацията е резултат от процедура, която се извършва чрез натискане на бутона Print. Сега, след като се създава празен печатна форма, можете да отидете на да се разработи процедура се извършва чрез натискане на бутона Print. текстът на която е снабдена с необходимата poyasneshshmi в Обява 2.13.

Как да създадете в VBA превъзхождат заявление за съставяне на заявлението в канцеларски материали за офиса - трикове

Фиг. 2.10. Попълване на формуляр за кандидатстване за офис консумативи

"Обявата 2.13. Обработка щракнете върху бутона Print Private Sub Prn_Click () Dim SymmaItog толкова дълго, "Преброяване изпълнен с редици от стоки на 3-ти лист N = 0 Докато работни листове (3) .Cells (N + 11, 1) .Value <> "" N = N + 1 Wend "информация Пречистване отстраняване граници За I = 1 до п За J = 1 до 5 Работни (3) .Cells (10 + I, й) .Value =" "таблици (3) .Cells (10 + I, J) = .Borders.LineStyle xlNone следващ следващ "резюме Пречистване информационни таблици (3) .Cells (10 + N + 2, 4) .Value =" "таблици (3) .Cells (10 + N + 2, 5) .Value = "" "преброяване на броя на редовете на стоки на първия лист N1 = 0 докато клетките (N1 + 4, 1) .Value <> "" N1 = N1 + 1 Wend "променлива Symmaltog за обобщена информация SymmaItog = 0" цикъл за пълнене третият лист За I = 1 да N1 таблици (3) .Cells (10 + I, 1) .Value = I таблици ( 3) .Cells (10 + I, 2) .Value = Клетките (I + 3, 1) таблици (3) .Cells (10 + I, 3) .Value = Клетките (I + 3, 2) Работни (3) .Cells (10 + I, 4) .Value = клетки (I + 3, 3) работни листове (3) .Cells (10 + I, 5) .Value = клетки (I + 3, 4) SymmaItog = SymmaItog + клетки ( I + 3, 4) "Регистрация на клетъчната кадър за к = 1 до 5 Работни (3) .Cells (10 + I, J) = .Borders.LineStyle xlContinuos следващ следващ таблици (3) .Cells (10 + N1 + 2, 4) .Value = "Общо" таблици (3) .Cells (10 + N1 + 2, 5) .Value = SymmaItog таблици (3) .Activate End Sub

В началото на променливата процедура се въвежда, в който количеството изчислява по-долу. За хода на клетки, получени от информацията, която са използвали колекция стил на линия граници собственост. В началото на процедурата по определянето на стойност на този имот xlNone постига премахване на съществуващите граници. През втората половина на процедурата след оттеглянето на информация клетъчни контурите на плътна линия на:

Работни (3) .Cells (10 + I, J) = .Borders.LineStyle xlContinuos

Подкрепете проекта - споделете линка, благодаря!