Регистрирайте сеРегистрирайте се

Excel задача


 
   Форум за математика Форуми -> Информатика/Компютри
Предишната тема :: Следващата тема  
Автор Съобщение
administrator
Site Admin


Регистриран на: 12 Oct 2005
Мнения: 284
Местожителство: София(Варна)
Репутация: 45.6Репутация: 45.6Репутация: 45.6Репутация: 45.6Репутация: 45.6
гласове: 14

МнениеПуснато на: Mon Apr 09, 2007 9:52 pm    Заглавие: Excel задача

Тази задача, която трябва да направя в ексел, просто не мога да се справя. Ето линк, за съжаление на ангийски:

http://www.cse.yorku.ca/course/1520M/resources/AssignmentW07.html

p.s. Ако има пилоти да помагат, ще раздавам целувки на най-големите кавалери

Maya
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя Yahoo Messenger
Реклама







Пуснато на:     Заглавие: Реклама

Върнете се в началото
white_flames
Начинаещ


Регистриран на: 02 May 2007
Мнения: 2
Местожителство: Varna,Bulgaria
Репутация: 2Репутация: 2

МнениеПуснато на: Wed May 02, 2007 10:12 pm    Заглавие:

Kaжи ми по-конкретно кое точно не ти е ясно, защото наистина задачата не е много лесна, а целта не е някой да ти я даде направена. Все пак трябва и да разбереш как се правиSmile
Няма проблеми да обяснявамSmile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
pe6ka0
Начинаещ


Регистриран на: 20 Jun 2008
Мнения: 1


МнениеПуснато на: Fri Jun 20, 2008 9:47 am    Заглавие:

имам проблем трябва да реша една задача а не мога да се справя ако някой може да ми помогне ще съм много благодарна ето я и задачата Да се състави разчет в Excel за пресмятане на линейна система от 9 уравнения с 9 неизвестни като се използват функциите Mdeterm Minverse Mmult i Sum product
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
bugget
Начинаещ


Регистриран на: 20 Jan 2009
Мнения: 35
Местожителство: plovdiv
Репутация: 2.3Репутация: 2.3

МнениеПуснато на: Tue Jan 20, 2009 8:49 pm    Заглавие:

значи в тази тема ще напиша почти всичво за тази програма и да се надяваме че ще съм полезен:


Много от задачите, които изпълнявате в Excel, като въвеждане на данни за продажбите за определен ден или добавяне на формула към работен лист (Работен лист. Основният документ, използван в Excel за запис и работа с данни. Нарича се също електронна таблица. Работният лист се състои от клетки, които са организирани в колони и редове; работният лист винаги се съхранява в работна книга.), се извършват само еднократно. Други задачи, например променяне на формата на диапазон от клетки, се повтарят често, но могат да бъдат изпълнени бързо, като използвате инструментите в Excel. Често се случва обаче да имате една или две задачи, които изпълнявате често и чието изпълнение изисква много стъпки.

Възможно е например да пожелаете да осветите няколко важни клетки в работен лист всеки път, когато представяте отчет на ваши колеги. Вместо да преминавате през дълга серия от стъпки, за да направите това ръчно, можете да създадете макрос, тоест последователност от записани действия, който да изпълни стъпките вместо вас. Или, ако сте запознати с езика за програмиране Microsoft Visual Basic® for Applications (VBA), можете сами да напишете потребителски макрос. И в двата случая след създаването на макроса можете според нуждите да го изпълните, да го редактирате или да го изтриете.

Тази статия ви въвежда в обектно ориентираното програмиране и редактора за Visual Basic – средата, в която можете да пишете ваши собствен макроси за Excel. Когато сте готови да опитате да създадете потребителски макрос, вижте книгата на Frank Rice Super-Easy Guide to the Microsoft Office Excel 2003 Object Model (Много лесно ръководство за обектния модел на Microsoft Office Excel 2003) (на английски език) за по-задълбочен поглед върху тази материя.
Използване на редактора за Visual Basic.

Редакторът за Visual Basic е мощен инструмент, който ви позволява да разширявате мощта и гъвкавостта на макросите в сравнение с това, което може да се направи само чрез записване. За да го отворите, посочете Макрос в менюто Инструменти и след това щракнете върху Редактор за Visual Basic (или натиснете ALT+F11).

За да отворите конкретен макрос, посочете Макрос в менюто Инструменти и след това щракнете върху Макроси (или натиснете ALT+FCool. В диалоговия прозорец Макрос изберете макроса, който искате да редактирате или разгледате, а след това щракнете върху Редактиране, за да отворите редактора за Visual Basic.
Обектно ориентирано програмиране в редактора за Visual Basic

Използвайте обектно ориентираното програмиране в редактора за Visual Basic, за да създавате ваши собствени програми. По принцип една програма не е нищо повече от набор от инструкции, които компютърът изпълнява в зададен ред.

В един език за обектно ориентирано програмиране всеки аспект на вашия компютърен код се базира на нещата от вашата среда. Тези "неща" (което не е изненадващо) са представени като обекти, като всички действия и данни са капсуловани в тези обекти. В Excel обекти могат да бъдат работни книги, работни листове, диапазони от клетки и външни файлове.

Най-общо има четири аспекта на обектите, които се използват при създаването на една програма: свойства, методи, събития и колекции.
Свойства

Накратко, свойствата са променливи, описващи някой аспект на обекта, в който се съдържат. Едно свойство на всички обекти в Excel е Име, което съдържа идентифицираща стойност, която вие или Excel присвоявате на работна книга, работен лист, диапазон от клетки или друг обект. Ако например промените името на един работен лист (като използвате VBA код или като щракнете с десния бутон върху раздел от работния лист), вие променяте стойността, записана в свойството Име.

Можете да задавате нови стойности за някои работни листове (като Име) директно във VBA. За да промените други свойства на работния лист, може да се наложи да запишете действие в Excel (например стъпките за защитаване на диапазон от клетки) или да използвате метод (както е описано в следващия раздел).

Във VBA свойствата се извикват в програмите с помощта на точковото записване, при което първо се записва името на обекта, след това се записва името на свойството, и двата елементи се разделят с точка. Например, за да промените името на работен лист, използвайте свойството Worksheet.Name.
Методи

Методът е действие, което един обект "знае" как да извърши. Например, вие вероятно знаете, че работният лист, показан в прозореца на Excel, се нарича активен работен лист. Във VBA кода на Excel можете да достигнете до работния лист, с който искате да работите, като първо извикате неговия метод Activate. След изпълнението на метода Activate работният лист, с който е свързан, се премества пред работните листове в прозореца на Excel и става достъпен за редактиране.

Като е и при свойствата, методите се извикват с помощта на точковото записване. Например, за да преизчислите всички формули в един работен лист, извикайте метода Worksheet.Calculate.
Събития

Така както свойството е количествен атрибут на един обект, а методът е действие, което обектът знае как да извърши, събитието е действие, което обектът "разпознава" като извършено. Например Excel 2003 знае за следните събития (сред многото други):

* Отваря се или се затваря работна книга.
* Активира се или се дезактивира работен лист.
* Записва се работна книга.
* Щраква се върху диаграма.
* Натиска се клавиш (или клавишна комбинация).
* В клетка се въвеждат данни.
* Преизчисляват се формулите в работен лист.
* Проследява се хипервръзка.

Excel съдържа няколко манипулатора на събития, или подпрограми, които следят за конкретни действия. Когато едно от тези действия възникне и вие сте казали на Excel какво искате да направи, Excel изпълнява кода на вашия манипулатор на събития. Ако например след създаване на нова работна книга искате Excel да покаже всички отворени работни книги като каскаден набор от прозорци, можете да създадете следния манипулатор на събития.


Не се притеснявайте, ако не разбирате какво извършва всеки елемент от манипулатора на събитието. Засега обърнете внимание на средния ред от кода, който казва на Excel да подреди своите прозорци, като използва каскадния стил. Можете да получите същия резултат, като използвате командите от менюто на Excel (менюто Прозорец, командата Подреди и подкомандатаКаскадно). Ако обаче това е действие, което искате да се извършва всеки път, когато възникне някое конкретно събитие, можете да използвате VBA, за да го извършва автоматично и да си спестите грижата за това.
Колекции

Последният елемент на обектно ориентираното програмиране, с който трябва да сте запознати, е колекцията. Както подсказва името, колекцията е група обекти от един и същ тип, които се съдържат в друг обект. Например, една работна книга съдържа колекция от един или повече работни листове. Ако искате да направите едни и същи промени във всеки работен лист на една работна книга, можете програмно да преминете през всеки работен лист от колекцията и да направите промяната в него.

Ако по-рано сте създавали програми, вероятно сте изпълнявали цикъл For…Next, който ви позволява да повторите един набор от инструкции няколко пъти, като използвате нещо подобно на следната последователност. (Този пример добавя пътя до директорията на активната работна книга в дясната част на долния колонтитул на първите три работни листа.)

For i = 1 to 3
Worksheets(i).PageSetup.RightFooter = Path
Next i

Проблемът с фиксираното задаване (т. е. с присвояването на числова стойност) на горната граница в този цикъл For…Next е в това, че трябва да променяте кода всеки път, когато добавяте или изтривате работен лист. Това не страшно, когато се прави един или два пъти, но ако работите с обемист код, неизбежно ще забравите да го промените на няколко места. Това води до грешки, които след това ще трябва да отстранявате. По-лошото е, че тези грешки може да останат незабелязани, докато коректорът не забележи, че първите 500 отпечатани копия от вашия годишен отчет не са форматирани правилно (и че сте изключили мобилния си телефон, докато релаксирате на плажа).

Бихте могли да определите програмно броя на работните листове във вашата работна книга, но има по-прост начин да направите това: Използвайте вместо това цикъл For Each…Next. Цикълът For Each…Next намира броя на обектите в една колекция, например на работните листове в работна книга, и осъществява по една стъпка за всеки един от тях. Използвайки този метод, предишният код може да бъде записан, както следва:

For Each Wksht in Worksheets
Wksht.PageSetup.RightFooter = Path
Next Wksht


Вместо да увеличава стойността в стандартен цикъл For…Next, цикълът For Each…Next просто търси следващия член на колекцията Worksheets и спира, когато я изчерпи.
Редакторът за Visual Basic и неговите прозорци

Редакторът за Visual Basic показва различна информация в различни прозорци. Когато започнете да пишете макроси, е важно да знаете за следните прозорци: прозореца "Преглед на проекта", прозореца "Свойства" и прозореца "Код".
Прозорецът "Преглед на проекта"

Когато отворите директно редактора за Visual Basic, можете да използвате прозореца "Преглед на проекта", за да изберете макроса, върху който искате да работите. "Преглед на проекта" представя всички проекти (групи от кодове) и макросите, които те съдържат, във вид на дърво, което е подобно на дървото в Windows® Explorer. Кореновите или базовите обекти в дървовидната структура са текущата работна книга, в която работите, плюс всички други работни книги и добавки, които могат да бъдат отворени.

Всеки от главните елементи, които се използват от проектите на VBA, е съхранен в отделна папка във всеки проект. Тези елементи включват:

* Обекти (описани по-горе в тази статия)
* Модули, които съдържат кода на макрос, свързан с работен лист
* Модули за класове, които представляват дефиниции на дефинираните от потребителя обекти , които сте създали за вашата работна книга
* Потребителски формуляри, които предоставят видима повърхност, върху която можете да поставяте графични контроли като бутони, изображения и текстови области

В следващия пример текущата работна книга се идентифицира като VBAProject. Трите работни листа, включени в работната книга (Sheet1, Sheet2, и Sheet3), заедно с цялата работна книга (ThisWorkbook), се намират в папката Microsoft Office Excel Objects. Всички макроси, които са програмирани на VBA или са записани, се намират в папката Modules. Всички модули за класове или потребителски формуляри се намират съответно в папката Class Modules или Forms.



Прозорецът "Свойства"

Точно под прозореца Преглед на проекта се намира прозорецът Свойства, който се използва за преглеждане и променяне на различните свойства, свързани с избрания обект. За модулите обикновено е налично само свойството Име. Работните листове имат допълнителни свойства, които могат да бъдат променяни, като StandardWidth и DisplayPageBreaks. Променянето на свойства в прозореца Свойства най-често се извършва при работа с потребителски формуляри.

Забележка Името, което се показва за един обект в полето на свойството Име на прозореца Properties, не е задължително да е същото като името на съответния обект в Excel. Двете имена може да изглеждат подобни, но могат и да се различават поради правилата за даване на имена по подразбиране, които редакторът за Visual Basic използва за обектите. (Например имената не трябва да съдържат интервали, трябва да започват с буква, не трябва да са запазени думи и не трябва да бъдат по-дълги от 31 знака.) Но дори когато имената са различни, те могат да остават свързани вътрешно, за да гарантират препратката към правилния обект.
Прозорецът "Код"

Прозорецът "Код" е най-големият прозорец в редактора за Visual Basic и в горния му край има две падащи полета. Използвайте падащото поле вляво - полето "Обект" , за да изберете обект, с който да работите. Когато работите само с код, полето показва по подразбиране обекта Общ. Второто падащо поле – Процедура , се използва, за да изберете отделните макроси в текущия модул. Когато в модула се добавят и изтриват макроси, те се добавят и изтриват и в полето "Процедура".



Можете също да използвате клавишите СТРЕЛКА НАГОРЕ и СТРЕЛКА НАДОЛУ, за да се придвижвате в кода, докато достигнете желания макрос. Когато се придвижвате в кода, полето "Процедура" се актуализира, за да отрази текущия макрос.
Още информация

Когато започнете да създавате свои собствени макроси за Excel, подробни инструкции можете да намерите в книгата Super-Easy Guide to the Microsoft Office Excel 2003 Object Model (Много лесно ръководство за обектния модел на Microsoft Office Excel 2003) (на английски език).

Дано да съм помогнал.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение AIM Адрес Yahoo Messenger MSN Messenger
Volen Siderov
Редовен


Регистриран на: 21 Oct 2006
Мнения: 123

Репутация: 24.5Репутация: 24.5
гласове: 4

МнениеПуснато на: Tue Sep 29, 2009 2:54 pm    Заглавие: Exel

Прочетох разяснението за Visual Basic и се надявам да понауча нещо по-нататък.Сега обаче имам въпрос или по-скоро питане за самия Exel.Наскоро почнах работа в склад и се опитвам да си направя алгоритъм на ексел вместо да ползвам готова складова програма.По същество става въпрос за следното:Имам 1 работен фаил на ексел,1-я лист All ми е 1 колона със списък от 600 да кажем артикула.2,3 и т.н. листи са пак списъци на артикули само че според фирми които го ползват или дошли и т.н..Те представляват пак 1 колона от 500 да кажем артикула.Сега искам да сравни всяка от тези колони ред по ред с колоната от 1-я лист и ако артикула се среща там да мине да сравни следващич а ако го няма да се появи там и т.н. за всяко.Например така 770-я ред е = на IF(IFERROR(ERROR.TYPE(MATCH(Приход!C9;A$5:A669;0));0)=7;Приход!C9; )
т.е ако изделието от лист приход го има остави празно ако го няма пиши го.Това не ми харесва защото оставя много празни редове и колоната се размива.Искам без намеса празните редове да изчезнат и изделията да се подредят плътно.Затова пробвах вместо празно място да пиша следващата клетка и да разреща итерации(цикъл):
IF(IFERROR(ERROR.TYPE(MATCH(Приход!C9;A$5:A669;0));0)=7;Приход!C9;A771)
Проблема тука е че таблицата се подрежда сама в зависимост от броя итерации(цикли).Иначе пак се разбърква.И така въпроса ми е?Има ли начин да задавам броя итерации като променлива а не като число в опциите на ексела или пък някои може да даде съвсем нова идея.П.С. ако отделя имената които искам да подредя и се опитам да ги номерирам според това появяват ли се или не и да ги подредя с константни числа в основната колона пак ми дава цикъл т.е. пак ми трябва изчисление като променлива на броя итерации
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:   
   Форум за математика Форуми -> Информатика/Компютри Часовете са според зоната GMT + 2 Часа
Страница 1 от 1

 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети
Може да прикачвате файлове
Може да сваляте файлове от този форум
Copyright © 2005-2021 math10.com.