Jump to content

Ръководства за работа с Excel 2003


Препоръчан пост

Здравейте!

 

Ако някой може да ми помогне ще съм много благодарен. Имам следния проблем:

Здравейте,

 

Да, има начин това да бъде постигнато. Просто трябва да създадете формула в третата колона, която да изчислява разликата между първите две колони при закръглени стойности на числата вътре. За целта трябва да използвате функцията Round при която като аргументи се посочват а) числото, което ще бъде закръглено и б) броят на числата след десетичната запетая, до които то ще бъде закръглено. Например ако имате числото 1.44444 и напишете Round(1.44444,2), то числото ще бъде закръглено до втория знак след десетичната запетая и ще бъде показано като 1.44. Това е различно от опцията, която сте използвали "(от меню format cells)", защото във Вашия случай закръглянето е само визуално, а числото е запаметено с всички знаци след десетичната запетая и при действия с него тези символи се броят. Докато начина, който Ви описах директно закръгля стойността на числото независимо какво сте избрали да се показва.

 

Ето и как би изглеждала формулата, за която писах по-горе (ако приемем, че първата Ви колона е "А", а втората "В"):

=ROUND(A1,2)-ROUND(B1,2)

Link to comment
Сподели другаде

  • Отговори 1.5k
  • Създадена
  • Последен отговор

ТОП потребители в тази тема

ТОП потребители в тази тема

Публикувани изображения

Здравейте,

Нуждая се от формула в Excel, която да изчислява (приход, разход и салдо) за един артикул, като салдото се появява на всеки ред с натрупване за 1 месец

Здравей,

ето как направих натрупването ти да е на всеки ред, ето така:

 

http://www.picvalley.net/u/427/106744_333.JPG

Link to comment
Сподели другаде

Здравейте на всички пишещи в тази тема!

 

Радвам се, че Ви открих. Цяла вечер се мъчих да заключа определени клетки от листа и да оставя отключени други, за да мога да защитя някои колони и редове от една таблица от некомпетентна намеса на всезнаещи и всеможещи колежки, но уви...

Благодаря на Danina и на panevdd за съветите, макар и отправени към друг потребител, но със същия проблем. Таблицата ми вече е защитена благодарение на Вашите указания.

Link to comment
Сподели другаде

  • 2 weeks later...

Интересува ме може ли да се зададе период на валидност на EXCEL-ски файл?

(файла да е валиден до определена дата, след което да изписва "невалиден файл" или изобщо да не го отваря?

Предварително Ви благодаря!!!

Надявам се да ми помогнете??!?

Link to comment
Сподели другаде

kiskin, можеш да опиташ да въведеш следния код за изпълнение в документа:

Sub Auto_Open()
Dim exdate As Date
exdate = "11/30/2004"
If Date > exdate Then
	MsgBox ("You have reached end of your trail period")
	ActiveWorkbook.Close
End If	
MsgBox ("You have " & exdate - Date & "Days left")
End Sub

Примерът е взет от Tips.Net.

Link to comment
Сподели другаде

kiskin, можеш да опиташ да въведеш следния код за изпълнение в документа:

Sub Auto_Open()
Dim exdate As Date
exdate = "11/30/2004"
If Date > exdate Then
	MsgBox ("You have reached end of your trail period")
	ActiveWorkbook.Close
End If	
MsgBox ("You have " & exdate - Date & "Days left")
End Sub

Примерът е взет от Tips.Net.

 

Благодаря много panevdd!!!

Извини ме за невежеството, но exdate = "11/30/2004" ли е датата за валидност(за възможност) за отваряне на файла?

А как мога след тази дата да активирам отново файла, ако е необходимо???

Предварително ти благодаря!

Link to comment
Сподели другаде

Да, командата exdate указва съответната дата, до настъпването на която файлът ще може да се отваря и функционира коректно.

Относно повторното активиране на файла след тази дата - сещам се за два начина (в момента нямам инсталиран Excel, за да тествам):

1. Чрез промяна на системната дата в съответната операционна система;

2. Чрез изключване на изпълнението на макросите в Microsoft Excel - меню Tools -> Macro -> Security.

Link to comment
Сподели другаде

Благодаря ти приятел за съдействието!

Вкарах кода и записах документа, като настроих дата 30/12/2008.

При повторно отваряне на фаила, го отваря като показва съобщение от Microsoft Visual Basic "Argument not optional"

след ОК съобщението изчезва и файла е достъпен.

Опитах и с дата 12/30/2008 и пак същото?!? Моля те помогни, какво не е наред?

Link to comment
Сподели другаде

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

Ето как го направих аз (WindowsXP SP2, OfficeXP SP3):

1. Отворих си нов документ в Microsoft Excel;

2. Избрах Tools -> Macro -> Visual Basic Editor;

3. Отворих (с двойно щракване) обекта ThisWorkbook в раздела Project - VBAProject;

4. Въведох следния код:

Private Sub Workbook_Open()
Dim exdate As Date
exdate = "10/03/2008"
If Date > exdate Then
	MsgBox ("Времевият период е изтекъл.")
	ActiveWorkbook.Close
End If
MsgBox ("Остават още " & exdate - Date & " дни.")
End Sub

5. Съхраних документа и го затворих.

След тези действия при всяко отваряне на документа се прави проверка на датата, т. е., кодът работи.

Link to comment
Сподели другаде

Не знам дали има значение, но предишния код започваше с :

"Sub Auto_Open() ", а този с "Private Sub Workbook_Open()" ?

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

Но и лесно се "заобикаля" със смяна на датата !

Извинявай, но може ли да се вкара в кода парола за дезактивиране??

Май искам невъзможни неща?

Ще се радвам, ако стане.

Link to comment
Сподели другаде

Първия код защитава страницата (Sheet), а втория - цялата работна книга (Workbook) в Excel.

Предполагам, че проблемът с предишния код е в изписването на датата - в първия пример, който дадох, датата беше във формат "мм/дд/гггг", а във втория пример - "дд/мм/гггг". Ако в регионалните настройки е зададен различен стандарт за изписването на датата, може да възникне проблем при нейната обработка, когато е във вид на променлива. В двата примера съм изписал датата по различен начин, точно защото не знаех как е зададено форматирането в регионалните настройки при теб.

Сега за "заобикалянето" на кода: този вид защита може лесно да се "прескочи" не само със смяна на системната дата - ако забраниш изпълнението на макросите в Microsoft Excel, файлът ще се отвори и ще бъде достъпен за редактиране, включително и самият макрос.

Принципно можеш да се защитиш от манипулиране на системната дата по следния начин: въвеждаш макрос, който при всяко отваряне на документа да записва някъде датата и часът на отварянето; с команда (или друг макрос) правиш сравнение между вече записаната дата и текущата дата на отваряне. Ако текущата дата на отваряне се окаже по-ранна от вече записаната, следва определено действие - например затваряне на документа.

Относно забраната за изпълнение на макросите: можеш да създадеш документ, който да е неизползваем без макросите, които си въвел. При това положение забраната за изпълнение очевидно е безсмислена.

Накрая можеш да защитиш определени области от документа с парола, за да ограничиш достъпа до съдържанието в тях. Имай предвид обаче, че тази защита също може да се преодолее - има специално създадени програми за отгатване или разбиване на паролите в документите на Microsoft Office.

Link to comment
Сподели другаде

Благодаря ти panevdd !

В общи линиии, това което казваш предполагах, че е възможно, но проблема е че нищо не разбирам от този VB код!?!

Можеш ли да съставиш код, който да "защитава от манипулиране на системната дата" и същевременно документа

"да е неизползваем без макросите"??

Предполагам, че това е доста трудоемка задача :crosseyes1:

Ако не ти се занимава ще те разбера!

Ако можеш и имаш време помагай?!?

Link to comment
Сподели другаде

Дай някакъв пример за това, което ще правиш, за да мога да измисля някакъв макрос, който да върши работата. Идеята е основната част от изчисленията в документа да се извършва от макроси - така, ако изпълнението им бъде забранено, документа просто няма да работи.

Относно датата - ще потърся нещо и ще пиша.

Link to comment
Сподели другаде

Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...

×
×
  • Създай ново...