龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

把数字转成英文字

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
●建立D2T巨集,并把快速键设为Shift Ctrl T。 ●写入程式码: SubD2T() DimMyStrAsString MyStr=ActiveCell.Text IfIsNumeric(MyStr)=TrueThen ActiveCell.Value="" SelectCaseLen(MyStr) Case1 OneDG(MyStr) Case2 TwoDG(MyStr) Case3
●建立D2T巨集,并把快速键设为Shift Ctrl T。
  
  
  ●写入程式码:
  
  SubD2T()
  DimMyStrAsString
  MyStr=ActiveCell.Text
  
  IfIsNumeric(MyStr)=TrueThen
  ActiveCell.Value=""
  
  SelectCaseLen(MyStr)
  Case1
  OneDG(MyStr)
  Case2
  TwoDG(MyStr)
  Case3
  ThreeDG(MyStr)
  Case4
  OneDG(Left(MyStr,1))
  ActiveCell.Value=ActiveCell.Value "Thousand"
  ThreeDG(Right(MyStr,3))
  Case5
  TwoDG(Left(MyStr,2))
  ActiveCell.Value=ActiveCell.Value "Thousand"
  ThreeDG(Right(MyStr,3))
  Case6
  ThreeDG(Left(MyStr,3))
  ActiveCell.Value=ActiveCell.Value "Thousand"
  ThreeDG(Right(MyStr,3))
  Case7
  OneDG(Left(MyStr,1))
  ActiveCell.Value=ActiveCell.Value "Millon"
  ThreeDG(Mid(MyStr,2,3))
  ActiveCell.Value=ActiveCell.Value "Thousand"
  ThreeDG(Right(MyStr,3))
  Case8
  TwoDG(Left(MyStr,2))
  ActiveCell.Value=ActiveCell.Value "Millon"
  ThreeDG(Mid(MyStr,3,3))
  ActiveCell.Value=ActiveCell.Value "Thousand"
  ThreeDG(Right(MyStr,3))
  Case9
  ThreeDG(Left(MyStr,3))
  ActiveCell.Value=ActiveCell.Value "Millon"
  ThreeDG(Mid(MyStr,4,3))
  ActiveCell.Value=ActiveCell.Value "Thousand"
  ThreeDG(Right(MyStr,3))
  Case10
  OneDG(Left(MyStr,1))
  ActiveCell.Value=ActiveCell.Value "Billon"
  ThreeDG(Mid(MyStr,2,3))
  ActiveCell.Value=ActiveCell.Value "Millon"
  ThreeDG(Mid(MyStr,5,3))
  ActiveCell.Value=ActiveCell.Value "Thousand"
  ThreeDG(Right(MyStr,3))
  Case11
  TwoDG(Left(MyStr,2))
  ActiveCell.Value=ActiveCell.Value "Billon"
  ThreeDG(Mid(MyStr,3,3))
  ActiveCell.Value=ActiveCell.Value "Millon"
  ThreeDG(Mid(MyStr,6,3))
  ActiveCell.Value=ActiveCell.Value "Thousand"
  ThreeDG(Right(MyStr,3))
  CaseElse
  EndSelect
  EndIf
  EndSub
  
  SubOneDG(MyStrAsString)
  SelectCaseMyStr
  Case"0"
  IfActiveCell.Value=""ThenActiveCell.Value=ActiveCell.Value "Zero"
  Case"1"
  ActiveCell.Value=ActiveCell.Value "One"
  Case"2"
  ActiveCell.Value=ActiveCell.Value "Two"
  Case"3"
  ActiveCell.Value=ActiveCell.Value "Three"
  Case"4"
  ActiveCell.Value=ActiveCell.Value "Four"
  Case"5"
  ActiveCell.Value=ActiveCell.Value "Five"
  Case"6"
  ActiveCell.Value=ActiveCell.Value "Six"
  Case"7"
  ActiveCell.Value=ActiveCell.Value "Seven"
  Case"8"
  ActiveCell.Value=ActiveCell.Value "Eight"
  Case"9"
  ActiveCell.Value=ActiveCell.Value "Nine"
  EndSelect
  EndSub
  
  SubTwoDG(MyStrAsString)
  SelectCaseMyStr
  Case"10"
  ActiveCell.Value=ActiveCell.Value "Ten"
  Case"11"
  ActiveCell.Value=ActiveCell.Value "eleven"
  Case"12"
  ActiveCell.Value=ActiveCell.Value "Twelve"
  Case"13"
  ActiveCell.Value=ActiveCell.Value "Thirteen"
  Case"14"
  ActiveCell.Value=ActiveCell.Value "Fourteen"
  Case"15"
  ActiveCell.Value=ActiveCell.Value "Fifteen"
  Case"16"
  ActiveCell.Value=ActiveCell.Value "Sixteen"
  Case"17"
  ActiveCell.Value=ActiveCell.Value "Seventeen"
  Case"18"
  ActiveCell.Value=ActiveCell.Value "Eighteen"
  Case"19"
  ActiveCell.Value=ActiveCell.Value "Nineteen"
  CaseElse
  SelectCaseLeft(MyStr,1)
  Case"2"
  ActiveCell.Value=ActiveCell.Value "Twenty"
  Case"3"
  ActiveCell.Value=ActiveCell.Value "Thirty"
  Case"4"
  ActiveCell.Value=ActiveCell.Value "Forty"
  Case"5"
  ActiveCell.Value=ActiveCell.Value "Fifty"
  Case"6"
  ActiveCell.Value=ActiveCell.Value "Sixty"
  Case"7"
  ActiveCell.Value=ActiveCell.Value "Seventy"
  Case"8"
  ActiveCell.Value=ActiveCell.Value "Eighty"
  Case"9"
  ActiveCell.Value=ActiveCell.Value "Ninety"
  EndSelect
  OneDG(Right(MyStr,1))
  EndSelect
  
  EndSub
  
  SubThreeDG(MyStrAsString)
  SelectCaseLeft(MyStr,1)
  Case"1"
  ActiveCell.Value=ActiveCell.Value "OneHandred"
  Case"2"
  ActiveCell.Value=ActiveCell.Value "TwoHandred"
  Case"3"
  ActiveCell.Value=ActiveCell.Value "ThreeHandred"
  Case"4"
  ActiveCell.Value=ActiveCell.Value "FourHandred"
  Case"5"
  ActiveCell.Value=ActiveCell.Value "FiveHandred"
  Case"6"
  ActiveCell.Value=ActiveCell.Value "SixHandred"
  Case"7"
  ActiveCell.Value=ActiveCell.Value "SevenHandred"
  Case"8"
  ActiveCell.Value=ActiveCell.Value "EightHandred"
  Case"9"
  ActiveCell.Value=ActiveCell.Value "NightHandred"
  EndSelect
  TwoDGRight(MyStr,2)
  EndSub
  ●上面的程式码可以处理到11位数。●随意输入一个未超过11位数的数字,然后把输入游标移到该Cell里。
  
  ●一同按下Shift Ctrl T。->

精彩图集

赞助商链接