كار تابع bahttext

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • mrexcel

    • 2010/02/03
    • 436
    • 81.00

    كار تابع bahttext

    تابع فوق عدد گرفته شده را به صورت متن نمايش ميدهد ولي به خط تايلندي من فكر ميكنم اين غير منطقي راهنمائي كنيد چگونه خروجي انگليسي بگيرم
    زنگ تفريح دنيا هميشگي نيست ، ساعت بعد حساب داريم
  • Amir Mohsenpour

    • 2010/02/10
    • 146
    • 53.33

    #2
    RE: كار تابع bahttext

    به نظر من در حال حاضر بهترین روش برای گرفتن خروجی حروف انگلیسی از اعداد در اکسل استفاده از Add-In می باشد که برای این منظور فایل تهیه شده توسط جناب استاد فرشید میدانی از لحاظ کارائی بسیار عالی می باشد.
    [align=center]با تشکر
    امیر محسن پور[/align]

    کامنت

    • amator

      • 2010/03/25
      • 113

      #3
      RE: كار تابع bahttext

      نوشته اصلی توسط mrexcel
      تابع فوق عدد گرفته شده را به صورت متن نمايش ميدهد ولي به خط تايلندي من فكر ميكنم اين غير منطقي راهنمائي كنيد چگونه خروجي انگليسي بگيرم
      ALT+F11 رو فشار بدین
      Module رو از منوی Insert انتخاب کنین
      کد زیر رو در module sheet وارد کنین
      [align=left]
      کد PHP:
      Option Explicit
      'Main Function
      Function SpellNumber(ByVal MyNumber)
          Dim Dollars, Cents, Temp
          Dim DecimalPlace, Count
          ReDim Place(9) As String
          Place(2) = " Thousand "
          Place(3) = " Million "
          Place(4) = " Billion "
          Place(5) = " Trillion "
          ' 
      String representation of amount.
          
      MyNumber = Trim(Str(MyNumber))
          
      ' Position of decimal place 0 if none.
          DecimalPlace = InStr(MyNumber, ".")
          ' 
      Convert cents and set MyNumber to dollar amount.
          If 
      DecimalPlace > 0 Then
              Cents 
      = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
                        
      "00", 2))
              
      MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
          
      End If
          
      Count = 1
          
      Do While MyNumber <> ""
              
      Temp = GetHundreds(Right(MyNumber, 3))
              If 
      Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
              
      If Len(MyNumber) > 3 Then
                  MyNumber 
      = Left(MyNumber, Len(MyNumber) - 3)
              Else
                  
      MyNumber = ""
              
      End If
              
      Count = Count + 1
          Loop
          Select 
      Case Dollars
              
      Case ""
                  
      Dollars = "No Dollars"
              
      Case "One"
                  
      Dollars = "One Dollar"
               
      Case Else
                  
      Dollars = Dollars & " Dollars"
          
      End Select
          Select 
      Case Cents
              
      Case ""
                  
      Cents = " and No Cents"
              
      Case "One"
                  
      Cents = " and One Cent"
                    
      Case Else
                  
      Cents = " and " & Cents & " Cents"
          
      End Select
          SpellNumber 
      = Dollars & Cents
      End 
      Function
            
      ' Converts a number from 100-999 into text 
      Function GetHundreds(ByVal MyNumber)
          Dim Result As String
          If Val(MyNumber) = 0 Then Exit Function
          MyNumber = Right("000" & MyNumber, 3)
          ' 
      Convert the hundreds place.
          If 
      Mid(MyNumber, 1, 1) <> "0" Then
              Result 
      = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
          
      End If
          
      ' Convert the tens and ones place.
          If Mid(MyNumber, 2, 1) <> "0" Then
              Result = Result & GetTens(Mid(MyNumber, 2))
          Else
              Result = Result & GetDigit(Mid(MyNumber, 3))
          End If
          GetHundreds = Result
      End Function
            
      ' 
      Converts a number from 10 to 99 into text. 
      Function 
      GetTens(TensText)
          
      Dim Result As String
          Result 
      = ""           ' Null out the temporary function value.
          If Val(Left(TensText, 1)) = 1 Then   ' 
      If value between 10-19...
              
      Select Case Val(TensText)
                  Case 
      10: Result = "Ten"
                  
      Case 11: Result = "Eleven"
                  
      Case 12: Result = "Twelve"
                  
      Case 13: Result = "Thirteen"
                  
      Case 14: Result = "Fourteen"
                  
      Case 15: Result = "Fifteen"
                  
      Case 16: Result = "Sixteen"
                  
      Case 17: Result = "Seventeen"
                  
      Case 18: Result = "Eighteen"
                  
      Case 19: Result = "Nineteen"
                  
      Case Else
              
      End Select
          
      Else                                 ' If value between 20-99...
              Select Case Val(Left(TensText, 1))
                  Case 2: Result = "Twenty "
                  Case 3: Result = "Thirty "
                  Case 4: Result = "Forty "
                  Case 5: Result = "Fifty "
                  Case 6: Result = "Sixty "
                  Case 7: Result = "Seventy "
                  Case 8: Result = "Eighty "
                  Case 9: Result = "Ninety "
                  Case Else
              End Select
              Result = Result & GetDigit _
                  (Right(TensText, 1))  ' 
      Retrieve ones place.
          
      End If
          
      GetTens = Result
      End 
      Function
           
      ' Converts a number from 1 to 9 into text. 
      Function GetDigit(Digit)
          Select Case Val(Digit)
              Case 1: GetDigit = "One"
              Case 2: GetDigit = "Two"
              Case 3: GetDigit = "Three"
              Case 4: GetDigit = "Four"
              Case 5: GetDigit = "Five"
              Case 6: GetDigit = "Six"
              Case 7: GetDigit = "Seven"
              Case 8: GetDigit = "Eight"
              Case 9: GetDigit = "Nine"
              Case Else: GetDigit = ""
          End Select
      End Function 
      [/align]
      منبع

      کامنت

      • amator

        • 2010/03/25
        • 113

        #4
        RE: كار تابع bahttext

        درضمن مطابق منطق برنامه نویسی با تغییر محتوای اعداد انگلیسی میتونیم از مدول موجود خروجی فارسی هم بگیریم

        کامنت

        چند لحظه..