Suma in cuirsive

Nilalaman

Sa ibaba makikita mo ang isang nakahanda na function na tinukoy ng gumagamit sa VBA na nagsasalin ng anumang numero mula 0 sa 9 sa textual na representasyon nito, ibig sabihin, sa dami sa mga salita. Bago gamitin, dapat idagdag ang function na ito sa iyong aklat. Para dito:

  1. pindutin ang keyboard shortcut ALT + F11upang buksan ang Visual Basic Editor
  2. magdagdag ng bagong walang laman na module sa pamamagitan ng menu Ipasok – Module
  3. kopyahin at i-paste ang teksto ng function na ito doon:
Function SUM(n Bilang Doble) Bilang String Dim Nums1, Nums2, Nums3, Nums4 Bilang Variant Nums1 = Array("", "isa", "dalawa", "tatlo", "apat", "lima", "anim", "pito", "eight", "nine") Nums2 = Array("", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", _ "eighty ", "siyamnapu") Nums3 = Array("", "isang daan", "dalawang daan", "tatlong daan", "apat na raan", "limang daan", "anim na raan", "pitong daan", _ " walong daan", "siyam na raan") Nums4 = Array("", "isa", "dalawa", "tatlo", "apat", "lima", "anim", "pito", "walo", "siyam ") Nums5 = Array("sampu " , "labing-isa", "labindalawa", "labing tatlo", "labing apat", _ "labing lima", "labing anim", "labing pito", "labing walo", "labing siyam") Kung n < = 0 Pagkatapos SUMWRITE = "zero" Exit Function End Kung 'hatiin ang numero sa mga digit gamit ang helper function Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class (n, 4) dectys = Klase(n , 5) sottys = Klase(n, 6) mil = Klase(n, 7) decmil= Klase(n, 8) 'suriin ang milyon Piliin ang Kaso decmil Kaso 1 mil_txt = Nums5(mil ) at "milyon-milyong" GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 1 mil_txt = Nums1(mil) & "million " Case 2, 3, 4 mil_txt = Nums1(mil) & "million " Case 5 Hanggang 20 mil_txt = Nums1(mil) at "milyon-milyong " End Select www: sottys_txt = Nums3(sottys) ' check thousands Select Case dectys Case 1 tys_txt = Nums5(tys) & "thousands " GoTo eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 Kung dectys > 0 Pagkatapos tys_txt = Nums4(tys) & "thousand " Case 1 tys_txt = Nums4(tys) & "thousand " Case 2, 3, 4 tys_txt = Nums4(tys) & "thousands " Case 5 To 9 tys_txt = Nums4(tys) & "thousands " End Select If dectys = 0 At tys = 0 At sottys <> 0 Then sottys_txt = sottys_txt & "thousands" eee: sot_txt = Nums3(sot) ' suriin ang sampu Piliin ang Kaso dec Kaso 1 ed_txt = Nums5(ed) GoTo rrr Case 2 Hanggang 9 dec_txt = Nums2(dec) Katapusan Piliin ed_txt = Nums1 (ed) rrr: 'buuin ang panghuling row na may SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function ' helper function na i-extract mula sa bilang ng mga digit Pribadong Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 1)) End Function    

I-save ang file (kung mayroon kang Excel 2007 o 2010, kung gayon ang uri ng file ay dapat na naka-enable sa macro, ibig sabihin, xlsm format!) at bumalik sa Excel. Ngayon ay maaari mong ipasok ang nilikha na function sa anumang cell ng worksheet sa karaniwang paraan - sa pamamagitan ng function wizard (button fx sa formula bar, kategorya Tinukoy ng Gumagamit) o sa pamamagitan lamang ng pag-type nito nang manu-mano sa cell at pagtukoy sa cell na may halaga bilang argumento:

Kung kailangan mong magdagdag ng mga pennies sa natanggap na teksto, maaari kang gumamit ng bahagyang mas kumplikadong konstruksyon:

 u3d SUM IN WRITE (A3) & ” kuskusin. “&TEXT((A3-INTEGER(A100))*00;”XNUMX″)&”cop.” 

u3d SUM IN WRITE (A3) & ” kuskusin. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”pulis.”

Pagkatapos, halimbawa, para sa bilang na 35,15, ang resulta ng function ay magmumukhang "tatlumpu't limang rubles. 15 kop.”

 

  • Ang isang mas malakas na bersyon ng function na may rubles at kopecks sa / Ingles mula sa PLEX add-on
  • Ano ang mga macro, kung saan ilalagay ang macro code, kung paano gamitin ang mga ito

 

Mag-iwan ng Sagot