Премини към съдържанието
quickJO

Въпрос за макрос в Excel - "словом" изписване

Препоръчан отговор


Здравейте колеги,първо, макроси никога не съм ползвал, не знам как се ползват, не знам как се пишат!За това се обръщам към вас.Представете си, един файл, след редица сметки от долу стои едно число, което представлява сбор, разлика, и всякакви такива на редица други числа. То е изведено със съответната форма. Трябва ми в клетката до него да се изписва неговата стойност словом.Демек крайната калкулация е да кажем 99.50 с клетката до тази сума да се изпише "деветдесет и девет и 0.50".Възможно ли е това да се случи по някакъв начин?Отделно, всеки нов документ представлява копиран целият преден шийт, като се променят само нужните данни и по този начин файла е един своеобразен регистър.Офис пакета на който ще се ползва, мисля, че е 2007.благодаря предварително,поздрави и лека и спокойна вечер!

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Здравей, първо да уточня какво е макрос:

-Макросът е низ от думи и съдържа скриптове написани на готово и всяка дума си има под скрипт за изпълнение на таблица, заявка, форма, отчет или пък нещо друго да прави (напр. изчислителни или сортиращи функции) и тази дума се избира от потребителя. Работил съм с база данни MS Access и когато трябва да създам макрос пиша името му и избирам няколко служебни думи или пък една. Тези думи не изпълняват само функции за даден елемент но за цялата база а именно как тя да стартира и други щуротии. Ще ме извиняваш, но това е от практическа точка така го разбирам. Ken ме изпревари и като малко се зачета в писаната тема дано тя да ти помогне успех и приятна вечер!

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

В общи линии това се разбира под макрос, ама в Excel - макросите са програми писани на Visual Basic for Application.

  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Да, да, "бързака" си е бързак.като се разтърсих попаднах на:

Function Spell(NumStr, i)Static Units(20) As String, Decim(9) As String, Hundr(11) As String, Thous(5) As String, Thous1(5) As StringStatic Units1(20) As StringUnits(0) = ""Units(1) = "един "Units(2) = "два "Units(3) = "три "Units(4) = "четири "Units(5) = "пет "Units(6) = "шест "Units(7) = "седем "Units(8) = "осем "Units(9) = "девет "Units(10) = "десет "Units(11) = "единадесет "Units(12) = "дванадесет "Units(13) = "тринадесет "Units(14) = "четиринадесет "Units(15) = "петнадесет "Units(16) = "шестнадесет "Units(17) = "седемнадесет "Units(18) = "осемнадесет "Units(19) = "деветнадесет "Units1(0) = ""Units1(1) = "една "Units1(2) = "две "Units1(3) = "три "Units1(4) = "четири "Units1(5) = "пет "Units1(6) = "шест "Units1(7) = "седем "Units1(8) = "осем "Units1(9) = "девет "Units1(10) = "десет "Units1(11) = "единадесет "Units1(12) = "дванадесет "Units1(13) = "тринадесет "Units1(14) = "четиринадесет "Units1(15) = "петнадесет "Units1(16) = "шестнадесет "Units1(17) = "седемнадесет "Units1(18) = "осемнадесет "Units1(19) = "деветнадесет "Decim(0) = ""Decim(1) = "двадесет "Decim(2) = "тридесет "Decim(3) = "четиридесет "Decim(4) = "петдесет "Decim(5) = "шестдесет "Decim(6) = "седемдесет "Decim(7) = "осемдесет "Decim(8) = "деветдесет "Hundr(0) = ""Hundr(1) = ""Hundr(2) = "сто "Hundr(3) = "двеста "Hundr(4) = "триста "Hundr(5) = "четиристотин "Hundr(6) = "петстотин "Hundr(7) = "шестстотин "Hundr(8) = "седемстотин "Hundr(9) = "осемстотин "Hundr(10) = "деветстотин "Thous(0) = ""Thous(1) = ""Thous(2) = "хиляди "Thous(3) = "милиона "Thous(4) = "милиарда "Thous1(0) = ""Thous1(1) = ""Thous1(2) = "хиляда "Thous1(3) = "милион "Thous1(4) = "милиард "Dim Num, RetStrRetStr = ""Num = CInt(NumStr)If Num = 0 ThenSpell = RetStrExit FunctionEnd IfIf Num = 1 ThenSelect Case iCase 1RetStr = "и " & Units(1) & Thous1(1)Case 2RetStr = Thous1(2)Case ElseRetStr = Units(1) & Thous1(i)End SelectSpell = RetStrExit FunctionEnd IfRetStr = RetStr & "и " & Hundr(CInt(Left(NumStr, 1)) + 1)If CInt(Right(NumStr, 2)) = 0 ThenSpell = RetStr & Thous(i)Exit FunctionEnd IfIf Mid(NumStr, 2, 1) = "0" Or Mid(NumStr, 2, 1) = "1" ThenIf i = 2 ThenSpell = RetStr & "и " & Units1(CInt(Mid(NumStr, 2, 2))) & Thous(i)ElseSpell = RetStr & "и " & Units(CInt(Mid(NumStr, 2, 2))) & Thous(i)End IfExit FunctionEnd IfIf Right(NumStr, 1) = "0" ThenRetStr = RetStr & "и " & Decim(CInt(Mid(NumStr, 2, 1)) - 1)ElseIf i = 2 ThenRetStr = RetStr & Decim(CInt(Mid(NumStr, 2, 1)) - 1) & "и " & Units1(CInt(Right(NumStr, 1)))ElseRetStr = RetStr & Decim(CInt(Mid(NumStr, 2, 1)) - 1) & "и " & Units(CInt(Right(NumStr, 1)))End IfEnd IfSpell = RetStr & Thous(i)End FunctionFunction Slov(ByVal Num As Currency)Static c(5)Dim NumStr, NumStr1, i, kIf Not IsNull(Num) ThenNumStr = Trim(CStr(Num))If Num = 0 ThenSlov = "нула"Exit FunctionEnd IfDim Buf As String:If (Num < 0@) Then Buf = "минус " Else Buf = ""Dim Frac As Currency: Frac = Abs(Num - Fix(Num))If (Num < 0@ Or Frac <> 0@) Then Num = Abs(Fix(Num))Dim AtLeastOne As Integer: AtLeastOne = Num >= 1i = 1NumStr = NumDoIf Len(NumStr) > 3 Thenc(i) = Right$(NumStr, 3)NumStr = Left$(NumStr, Len(NumStr) - 3)i = i + 1Elsec(i) = String(3 - Len(NumStr), "0") & NumStrExit DoEnd IfLoopNumStr = ""For k = i To 1 Step -1NumStr = NumStr & Spell(c(k), k)Next kDebug.Print NumStrIf Left(NumStr, 2) = "и " ThenNumStr = Right$(NumStr, Len(NumStr) - 2)End IfIf Left(NumStr, 2) = "и " ThenNumStr = Right$(NumStr, Len(NumStr) - 2)End If'стотинкиIf (Frac = 0@) ThenBuf = BufElseIf (Int(Frac * 100@) = Frac * 100@) ThenIf AtLeastOne Then Buf = Buf & "и "Buf = Buf & Format$(Frac * 100@, "00") & " стотинки"ElseIf AtLeastOne Then Buf = Buf & "и "Buf = Buf & Format$(Frac * 100@, "00") & " стотинки"End IfSlov = NumStr & "лева " & Buf ' "лв. "End IfEnd Function
иии май работи нормално.Благодаря много на всички!

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

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

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.