[VB技巧]12位纯数字字符串转换为大写字符串

合集下载

把单元格中数字快速转化为中文大写的方法

把单元格中数字快速转化为中文大写的方法

把单元格中数字快速转化为中文大写的方法将单元格中数字快速转化为中文大写的方法介绍在Excel中,有时我们需要将数字转化为中文大写,例如将12345转化为一万二千三百四十五。

本文将介绍几种快速将单元格中数字转化为中文大写的方法。

方法一:使用Excel自带函数Excel自带了一个函数=TEXT(value, "[$-0804][DBNum2]G/通用格式"),可以将数字转化为中文大写形式。

使用步骤: 1. 在一个空白单元格中输入=TEXT(A1, "[$-0804][DBNum2]G/通用格式"),其中A1为要转化的数字所在的单元格。

2. 按下Enter键即可看到转化后的中文大写数字。

方法二:使用VBA宏如果需要频繁使用该功能,可以使用VBA宏将其封装为一个函数,以便更加方便地调用。

使用步骤: 1. 按下ALT + F11打开VBA编辑器。

2. 在VBA编辑器中,选择要添加宏的工作簿。

3. 在模块中,插入以下VBA代码:Function ChineseNumber(ByVal Value As Variant) As S tringDim MyNumber As CurrencyDim DecimalPlace As IntegerDim Count As IntegerDim DecimalSeparator As StringDim Temp As StringDim DecimalValue As StringDim DecimalWords As StringDim ReturnValue As StringDecimalSeparator = "点"ReDim Place(9) As StringPlace(2) = "十"Place(3) = "百"Place(4) = "千"Place(5) = "万"Place(6) = "十"Place(7) = "百"Place(8) = "千"Place(9) = "亿"' Convert MyNumber to string, separate integral and decimalMyNumber = Trim(CStr(Value))DecimalPlace = InStr(MyNumber, ".")If DecimalPlace > 0 ThenDecimalValue = GetTens(Left(Mid(MyNumber, Decima lPlace + 1) & "00", 2))MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End IfCount = 1Do While MyNumber <> ""Temp = GetHundreds(Right(MyNumber, 3))If Temp <> "" Then ReturnValue = Temp & Place(Co unt) & ReturnValueIf Len(MyNumber) > 3 ThenMyNumber = Left(MyNumber, Len(MyNumber) - 3) ElseMyNumber = ""End IfCount = Count + 1LoopSelect Case ReturnValueCase ""ReturnValue = "零"Case "一十"ReturnValue = "十"End SelectChineseNumber = ReturnValue & DecimalSeparator & Dec imalValueEnd FunctionFunction GetHundreds(ByVal MyNumber)Dim Result As StringIf Val(MyNumber) = 0 Then Exit FunctionMyNumber = Right("000" & MyNumber, 3)' Convert the hundreds place.If Mid(MyNumber, 1, 1) <> "0" ThenResult = GetDigit(Mid(MyNumber, 1, 1)) & "百"End If' Convert the tens and ones place.If Mid(MyNumber, 2, 1) <> "0" ThenResult = Result & GetTens(Mid(MyNumber, 2))ElseResult = Result & GetDigit(Mid(MyNumber, 3))End IfGetHundreds = ResultEnd FunctionFunction GetTens(TensText)Dim Result As StringResult = "" ' Null out the temporary funct ion value.If Val(Left(TensText, 1)) = 1 Then ' If value betw een 10-19...Select Case Val(TensText)Case 10: Result = "十"Case 11: Result = "十一"Case 12: Result = "十二"Case 13: Result = "十三"Case 14: Result = "十四"Case 15: Result = "十五"Case 16: Result = "十六"Case 17: Result = "十七"Case 18: Result = "十八"Case 19: Result = "十九"Case ElseEnd SelectElse ' If value betw een 20-99...Select Case Val(Left(TensText, 1))Case 2: Result = "二十"Case 3: Result = "三十"Case 4: Result = "四十"Case 5: Result = "五十"Case 6: Result = "六十"Case 7: Result = "七十"Case 8: Result = "八十"Case 9: Result = "九十"Case ElseEnd SelectResult = Result & GetDigit _(Right(TensText, 1)) ' Retrieve ones place. End IfGetTens = ResultEnd FunctionFunction GetDigit(Digit)Select Case Val(Digit)Case 1: GetDigit = "一"Case 2: GetDigit = "二"Case 3: GetDigit = "三"Case 4: GetDigit = "四"Case 5: GetDigit = "五"Case 6: GetDigit = "六"Case 7: GetDigit = "七"Case 8: GetDigit = "八"Case 9: GetDigit = "九"Case Else: GetDigit = ""End SelectEnd Function4.按下CTRL + S保存宏。

VB中将数字转成人民币大写代码

VB中将数字转成人民币大写代码

Public Function DaXie(txtJE As Double) As StringOn Error GoTo err1Dim I As Long '迴圈變數Dim K As Long '記錄整數位元迴圈位置Dim NC As String '輸入金額'Dim chrNum As String '保存從字串中取出的數字Dim c1 As String '中文大寫單位Dim c2 As String '中文角分Dim c3 As String '中文大寫數位Dim Zheng As String '整數部分Dim Xiao As String '小數部分NC = Trim(Format(txtJE, "##0.00"))c1 = "仟佰拾萬仟佰拾億仟佰拾萬仟佰拾元"c2 = "角分"c3 = "玖捌柒陸伍肆三貳壹"If NC = 0 ThenDaXie = "零元整"Exit FunctionEnd IfDaXie = ""Zheng = Mid(NC, 1, (Len(NC) - 3))Xiao = Mid(NC, (Len(Zheng) + 2), 2)If Val(Xiao) <> 0 ThenFor I = Len(Xiao) To 1 Step -1chrNum = Mid(Xiao, I, 1)If chrNum <> 0 ThenDaXie = Mid(c2, I, 1) & DaXieDaXie = Mid(c3, (Len(c3) - chrNum + 1), 1) & Da XieElseIf I = 1 ThenDaXie = "零" & DaXieEnd IfEnd IfNext IEnd IfK = 0If Val(Zheng) <> 0 ThenDaXie = "元" & DaXieFor I = Len(Zheng) To 1 Step -1If (Len(Zheng) - I) = 4 ThenIf Val(Mid(Zheng, Len(Zheng) - 4, 1)) = 0 And _Mid(DaXie, 1, 1) <> "零" And _Mid(DaXie, 1, 1) <> "元" ThenDaXie = "零" & DaXieEnd IfIf Len(Zheng) >= 9 ThenIf Val(Mid(Zheng, Len(Zheng) - 7, 4)) = 0 ThenDaXie = DaXieElseDaXie = "萬" & DaXieEnd IfElseDaXie = "萬" & DaXieEnd IfElseIf (Len(Zheng) - I) = 8 ThenIf Val(Mid(Zheng, Len(Zheng) - 8, 1)) = 0 And _Mid(DaXie, 1, 1) <> "零" And _Mid(DaXie, 1, 1) <> "元" ThenDaXie = "零" & DaXieEnd IfDaXie = "億" & DaXieElseIf (Len(Zheng) - I) = 12 ThenIf Val(Mid(Zheng, Len(Zheng) - 12, 1)) = 0 And _Mid(DaXie, 1, 1) <> "零" And _Mid(DaXie, 1, 1) <> "元" ThenDaXie = "零" & DaXieEnd IfDaXie = "萬" & DaXieEnd IfchrNum = Mid(Zheng, I, 1)If chrNum <> 0 ThenIf I = Len(Zheng) ThenDaXie = Mid(c3, (Len(c3) - chrNum + 1), 1) & DaXieElseIf (Len(Zheng) - I) <> 4 And _(Len(Zheng) - I) <> 8 And _(Len(Zheng) - I) <> 12 ThenDaXie = Mid(c1, (Len(c1) - K), 1) & DaX ieEnd IfDaXie = Mid(c3, (Len(c3) - chrNum + 1), 1) & DaXieEnd IfElseIf Mid(DaXie, 1, 1) <> "元" And _Mid(DaXie, 1, 1) <> "萬" And _Mid(DaXie, 1, 1) <> "億" ThenIf Mid(DaXie, 1, 1) <> "零" ThenDaXie = "零" & DaXieEnd IfEnd IfEnd IfK = K + 1Next IEnd IfIf Right(Trim(DaXie), 1) <> "分" ThenDaXie = DaXie & "整"End IfExit Functionerr1:MsgBox "你輸入的數位太長或者格式錯誤.", , "提示:"End FunctionPrivate Sub Command1_Click()Text2.Text = DaXie(Val(Text1.Text))End Sub。

vb中数字变成大写

vb中数字变成大写
(它只有一个参数,两个参数就错了)
设a="Visual Basic"
Left(a,9) =>"Visual Ba"
注:所有的取值函数都要把空格计算上
返回Variant (Long),指定一字符串在另一字符串中最先出现的位置。
语法
InStr([start, ]string1, string2[, compare])
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble为Double类型。
MyInt =CInt(MyDouble) ' MyInt的值为2346。
"123.4"是字符串形式,有5个字节,val()是一个把字符串转化为整形的函数,str()又是一个把数字类型转化为字符串的函数,len()也是一个函数,它返回字符串的长度。所以答案是:5
ByVal的含义是使用值传递,而不是地址传递
Function c(byval a as intger, b as intger)as intger
c= a + b
End Function
使用
print c(1,2)
回答者:bxworks-五级2007-6-23 19:50
ByVal按值传递(ByValue),意思是传入的形式参数改变了,但是不影响实际参数的数值
'从第一个字符开使,以二进制比较的方式找起。返回值为9(大写P)。
'小写p和大写P在二进制比较下是不一样的。
MyPos = Instr(1, SearchString, SearchChar, 0)
'缺省的比对方式为二进制比较(最后一个参数可省略)。

Word VBA:小写数字转换为大写数字

Word VBA:小写数字转换为大写数字

Word VBA:小写数字转换为大写数字声明:原创内容,转发请注明出处及作者,盗版必究作者:柴大人QQ:24823610使用方法:把代码制作成宏(具体方法请自查),然后拉选需要转换的数字后执行宏,转换后会自动把结果复制到剪贴板上,直接在需要插入大写数字的地方粘贴即可。

在OFFICE 2013 64位中测试正常。

转换效果:123456789壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元整123456789.12壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角贰分123456789.02壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元零贰分123456789.1壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角整123000789壹亿贰仟叁佰万零柒佰捌拾玖元整源码:Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As LongPtrDeclare PtrSafe Function SetClipboardData Lib "user32" (ByVal Format As LongPtr, ByVal hMem As LongPtr) As LongPtr Declare PtrSafe Function CloseClipboard Lib "user32" () As LongPtrDeclare PtrSafe Function EmptyClipboard Lib "user32" () As LongPtrDeclare PtrSafe Function GlobalAlloc Lib "kernel32" (ByVal Flags As LongPtr, ByVal length As LongPtr) As LongPtrDeclare PtrSafe Function GlobalLock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtrDeclare PtrSafe Function GlobalUnlock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtrDeclare PtrSafe Function GlobalFree Lib "kernel32" (ByVal hMem As LongPtr) As LongPtrDeclare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal pDest As LongPtr, ByVal pSource As LongPtr, ByVal length As LongPtr)Sub Transform()Dim Capital, Unit, Number, Capacity, Integers, Decimals, R1, R2, PrintOut, TempA, LastZeroDim hMem As LongPtr, lHwnd As LongPtrCapital = "壹贰叁肆伍陆柒捌玖"Unit = "元拾佰仟万拾佰仟亿"Number = VBA.Trim(Selection.Text)Number = VBA.Replace(Number, Chr(10), "")Number = VBA.Replace(Number, Chr(13), "")LastZero = 0If VBA.IsNumeric(Number) ThenIntegers = Int(Number)If Int(Number) <> VBA.CDbl(Number) ThenDecimals = Replace(VBA.Round(Number, 2), Integers & ".", "")ElseDecimals = ""End IfFor R1 = 0 To Len(Integers) - 1TempA = Mid(Integers, Len(Integers) - R1, 1)If TempA = 0 And LastZero = 0 ThenPrintOut = "零" & PrintOutLastZero = 1ElseIf TempA > 0 ThenPrintOut = Mid(Capital, CInt(TempA), 1) & Mid(Unit, R1 + 1, 1) & PrintOutLastZero = 0End IfSelect Case R1Case 4If VBA.InStr(PrintOut, "万") = 0 Then PrintOut = "万" & PrintOut End SelectNext R1If VBA.InStr(PrintOut, "元") = 0 Then PrintOut = PrintOut & "元"Select Case Len(Decimals)Case 0PrintOut = PrintOut & "整"Case 1PrintOut = PrintOut & Mid(Capital, CInt(Left(Decimals, 1)), 1) & "角整"Case 2If CInt(Left(Decimals, 1)) > 0 ThenPrintOut = PrintOut & Mid(Capital, CInt(Left(Decimals, 1)), 1) & "角"ElsePrintOut = PrintOut & "零"End IfPrintOut = PrintOut & Mid(Capital, CInt(Right(Decimals, 1)), 1) & "分"End SelecthMem = GlobalAlloc(&H42, LenB(PrintOut) + 2)lHwnd = GlobalLock(hMem)CopyMemory lHwnd, StrPtr(PrintOut), LenB(PrintOut) + 2GlobalUnlock (hMem)OpenClipboard (0)EmptyClipboardSetClipboardData 13, hMemCloseClipboardEnd IfEnd Sub。

在Excel环境中运用VBA实现中文大写金额转换

在Excel环境中运用VBA实现中文大写金额转换

在Excel环境中运用VBA实现中文大写金额转换作者:柳佳顾士学来源:《数字技术与应用》2009年第12期[摘要]在Excel中运用VBA实现了中文大写金额转换提高了工作效率[关键词]VBA Excel 函数[中图分类号]TD17[文献标识码]A[文章编号]1007-9416(2009)12-0110-02在财会上很多情况下,需要从小到大写金额的转换,虽然我们通过设置Excel的单元格的特殊格式,可以将数字转换为中文大写数字。

但这些方法有的不够实用,有的输出格式不符合财会规定。

下面我们提出在Excel环境中运用VBA技术实现中文大写金额转换。

1 环境选择Excel 是微软公司集成办公软件Office 中的一个组件,是用户使用最为广泛的软件平台之一。

用其内嵌的编程语言VBA进行二次开发得到的应用软件,既可以使繁琐、重复操作自动化,提高工作效率和应用水平,同时又不改变Excel原有的界面风格、系统功能和操作方式,特别是它的编辑、排版、打印功能。

用户不必经过特殊学习和培训,即可使用,大大降低软件的使用门槛,提高了软件的可用性。

2 VBA简介Visual Basic for Applications(简称VBA)是新一代标准宏语言,它具有跨越多种Office 应用软件并且控制应用软件对象的能力。

VBA提供了面向对象的程序设计方法,提供了比较完整的程序设计语言。

Office就不仅仅是应用程序,更是一个开发平台,可以利用VBA对Office 进行二次开发,扩展其功能。

VBA具有以下特征:2.1 VBA 是一种解释性语言由于 VBA 是在VISUAL BASIC 的框架上建立起来的因此它也继承了Visual Basic 作为一种解释性语言的特性2.2 VBA 是一种面向对象的语言作为新一代的高级语言VBA 提供了对面向对象的程序设计方法的支持实际上VBA 的工作过程就是对各种对象包括VISUAL BASIC对象和OFFICE对象进行操作的过程2.3 VBA支持可视化的编程环境VBA 提供了新颖的可视化设计工具巧妙地将Windows 界面设计的复杂性封装起来程序开发人员不必再为界面设计而编写大量程序代码仅需采用现有工具按设计者要求的布局在屏幕上画出所需界面并为各图形对象设置属性即可。

VBA的字符串处理与操作方法

VBA的字符串处理与操作方法

VBA的字符串处理与操作方法字符串是编程中常常用到的数据类型之一。

无论是对文本内容进行处理、拼接还是替换,字符串操作都是至关重要的。

VBA作为一种强大的编程语言,提供了丰富的字符串处理与操作方法,让我们能够灵活地处理字符串数据。

1. 字符串的基本操作在VBA中,我们可以使用一些基本的操作来处理字符串。

例如,可以使用`Len`函数获取一个字符串的长度,使用`Left`函数以及`Right`函数获取字符串的左边或者右边的指定长度的子串。

```vbaDim str As Stringstr = "Hello, World!"' 获取字符串的长度Dim length As Integerlength = Len(str)' 获取字符串的左边的子串leftSubStr = Left(str, 5)' 获取字符串的右边的子串Dim rightSubStr As StringrightSubStr = Right(str, 6)```2. 字符串的拼接VBA提供了多种方式来进行字符串的拼接操作。

我们可以使用`&`符号将两个字符串连接在一起,也可以使用`+`符号、`Concatenate`函数或者`Join`函数来进行字符串拼接。

```vbaDim str1 As StringDim str2 As Stringstr1 = "Hello"str2 = "World"' 使用&符号进行字符串拼接concatStr = str1 & ", " & str2' 使用+符号进行字符串拼接Dim plusStr As StringplusStr = str1 + ", " + str2' 使用Concatenate函数进行字符串拼接Dim concatenateStr As StringconcatenateStr = WorksheetFunction.Concatenate(str1, ", ", str2)' 使用Join函数进行字符串拼接Dim joinStr As StringjoinStr = Join(Array(str1, ", ", str2), "")```3. 字符串的分割在处理字符串时,有时需要将字符串按照指定的分隔符进行分割,得到一个字符串数组。

[精华]vb中字母大小写转换的三种方法

[精华]vb中字母大小写转换的三种方法

VB中字母大小写转换的三种方法方法一:用VB的函数LCase和UCase用三个TextBox来展现一下这两个函数的大小写转换功能[运行之前在TextBox1中输入几个大写字母,也可混合输入]:PrivateSubCommand1_Click()Text2.Text=LCase(Text1.Text)'将Text1的文本全换成小写Text3.Text=UCase(Text2.Text)'将Text1的文本全换成大写EndSub说明:LCase仅将是大写的转换为小写,UCase则仅将是小写的转换为大写,故当字符串中有其它不符合转换的内容时将对其忽略。

可以在TextBox1中输入汉字、阿拉伯数字等观察效果。

方法二:用API函数user32提供两个用于大小写转换的API函数:Charlower[大写-小写]、Charupper[小写-大写],其原形分别为:DeclareFunctionCharLowerLib"user32"Alias"CharLowerA"(ByVallpszAsString)AsLong DeclareFunctionCharUpperLib"user32"Alias"CharUpperA"(ByVallpszAsString)AsLong继续用三个文本框来观察效果:PrivateSubCommand1_Click()DimaAsStringa=Text1.Text'给变量赋初值CharUppera'变为大写Text2.Text=aCharLowera'变为小写Text3.Text=aEndSub说明:与方法一的效果完全一样。

实际上,VB的LCase和UCase函数调用的也就是这两个API函数,是封装了这两个API函数的内部函数。

方法三:用算法可以利用Ascii码对大小写字母字符代码的定义来强制输入的字母只能为大写的或者小写的,而不管CapsLock键是打开的还是关闭的。

把数字型字符串转换成大写格式

把数字型字符串转换成大写格式

把数字型字符串转换成大写格式public string ConvertSum(string str){if (!IsPositveDecimal(str))return "没有数据!";if (Double.Parse(str) > 999999999999.99)return "金额溢出";char[] ch = new char[1];ch[0] = '.'; //小数点string[] splitstr = null; //定义按小数点分割后的字符串数组splitstr = str.Split(ch[0]);//按小数点分割字符串if (splitstr.Length == 1) //只有整数部分return ConvertData(str) + "圆整";else //有小数部分{string rstr;rstr = ConvertData(splitstr[0]) + "圆";//转换整数部分string xiaoshu = ConvertXiaoShu(splitstr[1]);rstr += (xiaoshu == "") ? "整" : xiaoshu;//转换小数部分return rstr;}}/// <summary>/// 判断是否是正数字字符串/// </summary>/// <param name="str"> 判断字符串</param>/// <returns>如果是数字,返回true,否则返回false</returns> public bool IsPositveDecimal(string str){Decimal d;try{d = Decimal.Parse(str);}catch (Exception){return false;}if (d > 0)return true;elsereturn false;}/// <summary>/// 转换数字(整数)/// </summary>/// <param name="str">需要转换的整数数字字符串</param> /// <returns>转换成中文大写后的字符串</returns>public string ConvertData(string str){string tmpstr = "";string rstr = "";int strlen = str.Length;if (strlen <= 4)//数字长度小于四位{rstr = ConvertDigit(str);}else{if (strlen <= 8)//数字长度大于四位,小于八位{tmpstr = str.Substring(strlen - 4, 4);//先截取最后四位数字rstr = ConvertDigit(tmpstr);//转换最后四位数字tmpstr = str.Substring(0, strlen - 4);//截取其余数字//将两次转换的数字加上萬后相连接rstr = String.Concat(ConvertDigit(tmpstr) + "萬", rstr); rstr = rstr.Replace("零萬", "萬");rstr = rstr.Replace("零零", "零");}elseif (strlen <= 12)//数字长度大于八位,小于十二位{tmpstr = str.Substring(strlen - 4, 4);//先截取最后四位数字rstr = ConvertDigit(tmpstr);//转换最后四位数字tmpstr = str.Substring(strlen - 8, 4);//再截取四位数字rstr = String.Concat(ConvertDigit(tmpstr) + "萬", rstr); tmpstr = str.Substring(0, strlen - 8);rstr = String.Concat(ConvertDigit(tmpstr) + "億", rstr); rstr = rstr.Replace("零億", "億");rstr = rstr.Replace("零萬", "零");rstr = rstr.Replace("零零", "零");rstr = rstr.Replace("零零", "零");}}strlen = rstr.Length;if (strlen >= 2){switch (rstr.Substring(strlen - 2, 2)){case "佰零": rstr = rstr.Substring(0, strlen - 2) + "佰"; break;case "仟零": rstr = rstr.Substring(0, strlen - 2) + "仟"; break;case "萬零": rstr = rstr.Substring(0, strlen - 2) + "萬"; break;case "億零": rstr = rstr.Substring(0, strlen - 2) + "億"; break;}}return rstr;}/// <summary>/// 转换数字(小数部分)/// </summary>/// <param name="str">需要转换的小数部分数字字符串</param>/// <returns>转换成中文大写后的字符串</returns>public string ConvertXiaoShu(string str){int strlen = str.Length;string rstr;if (strlen == 1){rstr = ConvertChinese(str) + "角";return rstr;}else{string tmpstr = str.Substring(0, 1);rstr = ConvertChinese(tmpstr) + "角";tmpstr = str.Substring(1, 1);rstr += ConvertChinese(tmpstr) + "分";rstr = rstr.Replace("零分", "");rstr = rstr.Replace("零角", "");return rstr;}}/// <summary>/// 转换数字/// </summary>/// <param name="str">转换的字符串(四位以内)</param> /// <returns></returns>public string ConvertDigit(string str){int strlen = str.Length;string rstr = "";switch (strlen){case 1: rstr = ConvertChinese(str); break;case 2: rstr = Convert2Digit(str); break;case 3: rstr = Convert3Digit(str); break;case 4: rstr = Convert4Digit(str); break;}rstr = rstr.Replace("拾零", "拾");strlen = rstr.Length;return rstr;}/// <summary>/// 转换四位数字/// </summary>public string Convert4Digit(string str){string str1 = str.Substring(0, 1);string str2 = str.Substring(1, 1);string str3 = str.Substring(2, 1);string str4 = str.Substring(3, 1);string rstring = "";rstring += ConvertChinese(str1) + "仟"; rstring += ConvertChinese(str2) + "佰"; rstring += ConvertChinese(str3) + "拾"; rstring += ConvertChinese(str4); rstring = rstring.Replace("零仟", "零"); rstring = rstring.Replace("零佰", "零"); rstring = rstring.Replace("零拾", "零"); rstring = rstring.Replace("零零", "零"); rstring = rstring.Replace("零零", "零"); rstring = rstring.Replace("零零", "零"); return rstring;}/// <summary>/// 转换三位数字/// </summary>public string Convert3Digit(string str) {string str1 = str.Substring(0, 1);string str2 = str.Substring(1, 1);string str3 = str.Substring(2, 1);string rstring = "";rstring += ConvertChinese(str1) + "佰"; rstring += ConvertChinese(str2) + "拾"; rstring += ConvertChinese(str3); rstring = rstring.Replace("零佰", "零"); rstring = rstring.Replace("零拾", "零");rstring = rstring.Replace("零零", "零"); rstring = rstring.Replace("零零", "零"); return rstring;}/// <summary>/// 转换二位数字/// </summary>public string Convert2Digit(string str){string str1 = str.Substring(0, 1);string str2 = str.Substring(1, 1);string rstring = "";rstring += ConvertChinese(str1) + "拾"; rstring += ConvertChinese(str2);rstring = rstring.Replace("零拾", "零"); rstring = rstring.Replace("零零", "零"); return rstring;}/// <summary>/// 将一位数字转换成中文大写数字/// </summary>public string ConvertChinese(string str) {//"零壹贰叁肆伍陆柒捌玖拾佰仟萬億圆整角分" string cstr = "";switch (str){case "0": cstr = "零"; break;case "1": cstr = "壹"; break;case "2": cstr = "贰"; break;case "3": cstr = "叁"; break; case "4": cstr = "肆"; break; case "5": cstr = "伍"; break; case "6": cstr = "陆"; break; case "7": cstr = "柒"; break; case "8": cstr = "捌"; break; case "9": cstr = "玖"; break; }return (cstr);}。

VBA编程中的高级字符串处理技巧分享

VBA编程中的高级字符串处理技巧分享

VBA编程中的高级字符串处理技巧分享VBA(Visual Basic for Applications)是一种用于自动化任务和数据处理的编程语言,在Microsoft Office套件中得到广泛应用。

在VBA编程中,处理字符串是非常常见的任务,本文将分享一些高级的字符串处理技巧,帮助您更高效地处理和操作字符串。

一、字符串拼接在VBA中,我们常常需要将多个字符串拼接成一个完整的字符串。

最简单的方法是使用&符号进行拼接,例如:```vbaDim str1 As StringDim str2 As StringDim combinedStr As Stringstr1 = "Hello"str2 = "World"combinedStr = str1 & " " & str2```上述代码中,使用&符号将str1、空格字符和str2依次连接起来,最终得到combinedStr的值为"Hello World"。

除了使用&符号,VBA还提供了另一种字符串拼接的方式,即使用VBA.Strings命名空间提供的Join函数。

例如:```vbaDim strArray(3) As StringDim combinedStr As StringstrArray(0) = "Apple"strArray(1) = "Banana"strArray(2) = "Orange"combinedStr = Join(strArray, ", ")```上述代码中,使用Join函数将strArray数组中的元素用逗号和空格进行连接,最终得到combinedStr的值为"Apple, Banana, Orange"。

将字符串中小写字母转换为大写形式的函数是

将字符串中小写字母转换为大写形式的函数是

将字符串中小写字母转换为大写形式的函数是一种常见的操作,我们通常会在编程中遇到这样的需求。

在本文中,我将从简单的字符串处理开始,逐步深入讨论如何实现这样一个函数,并探讨其中涉及的一些技术和注意事项。

1. 基础概念我们需要了解函数的基本概念。

一个将字符串中小写字母转换为大写形式的函数,通常会接受一个字符串作为输入,并返回一个新的字符串作为输出。

在这个过程中,我们需要遍历输入的字符串,将其中的小写字母转换为大写形式。

2. 实现方式在实现这样一个函数时,我们可以使用不同的方法。

最直观的方式是使用循环遍历输入的字符串,对其中的小写字母进行转换。

我们也可以利用现有的字符串处理方法或者正则表达式来实现这个功能。

无论使用哪种方式,我们都需要确保函数的性能和准确性。

3. 技术细节在实现字符串大小写转换的函数时,我们需要考虑一些技术细节。

对于不同编程语言,字符串的表示和处理方式可能会有所不同。

我们还需要考虑特殊字符、空格和其他非字母字符的处理问题。

在编写函数时,我们需要考虑这些细节,并保证程序的健壮性和通用性。

4. 个人观点对于将字符串中小写字母转换为大写形式的函数,我认为在实现时需要综合考虑性能、准确性和通用性。

在选择实现方式时,我们应该根据具体的需求和环境选择最合适的方法。

我们还可以考虑结合现有的库或者工具来简化实现过程,提高效率。

总结回顾将字符串中小写字母转换为大写形式的函数是一个常见且有价值的操作。

在实现这样一个函数时,我们需要综合考虑技术细节和准确性,并根据实际需求选择合适的方法。

通过深入探讨和实践,我们可以更好地理解和运用这一功能,提高编程效率和质量。

在本文中,我从基础概念开始,逐步深入讨论了如何实现将字符串中小写字母转换为大写形式的函数,并共享了一些个人观点和经验。

希望本文能对您有所帮助,谢谢阅读!以上内容是我按照您的要求撰写的文章,请您查看并提出修改意见,谢谢!对于将字符串中小写字母转换为大写形式的函数,我们可以进一步扩展讨论具体的实现方式和技术细节。

VB数据类型转换

VB数据类型转换

VB数据类型转换1. CType(X)[格式]:P=CBool(X) ' 将X转换为"布尔"(Boolean)类型P=CByte(X) ' 将X转换为"字节"(Byte)类型P=CCur(X) ' 将X转换为"金额"(Currency)类型P=CDate(X) ' 将X转换为"日期"(Date)类型P=CDbl(X) ' 将X转换为"双精度"(Double)类型P=CInt(X) ' 将X转换为"整型"(Integer)类型P=CLng(X) ' 将X转换为"长整型"(Long)类型P=CSng(X) ' 将X转换为"单精度"(Single)类型P=CStr(X) ' 将X转换为"字符串"(String)类型P=Cvar(X) ' 将X转换为"变体型"(Variant)类型P=CVErr(X) ' 将X转换为Error值[ 范例 ]:(1). CStr(13)+CStr(23)' 数值转换成字符串后,用"+"号连接,结果:1323(2). CInt("12")+12' 字符串转换成整型后与12相加,结果:24(3). P=CInt(True)' 输出结果为-1' 布尔值与数值的转换时要注意,布尔值只有True和False,其中True在内存中为-1,False存为0(4). CBool(-0.001)' 输出结果为True' 将数值转换为布尔型时,等于0的数值将得到False,不等于0的数值得到True.2. Int(X),Fix(X):取X的整数值[格式]:P=Int(X) ' 取<=X的最大整数值P=Fix(X) ' 取X的整数部分,直接去掉小数[范例]:(1) Int(-54.6) ' 结果为-55,取<=-54.6的最大整数(2) Fix(54.6) ' 结果为54,取整数并直接去掉小数。

vb中将数字变成大写的

vb中将数字变成大写的
d = Now
Print d
End Sub
灵活地应用以上的函数,可以大大地简化你的程序。例如想计算10000秒等于几小时几分几秒可写为:
Private Sub Form_Click()
Dim d As Date
d = TimeSerial(0, 0, 10000)
Print d
End Sub
结果为2:46:40。
vbTextCompare 1执行一个按照原文的比较。
vbDatabaseCompare 2仅适用于Microsoft Access,执行一个基于数据库中信息的比较。
返回值
如果InStr返回
string1为零长度0
string1为Null Null
string2为零长度Start
string2为Null Null
right和left函数正确的使用方法是:
Ritght(a,M)从右Fra bibliotek开始取值,取的位数为M位
举例:
设a="Visual Basic"
Ritght(a,3) =>"sic"
(它只有一个参数,Right(a,M,N)是一种错误的写法!)
-----------------------------
Left(a,N)从左边开始取值,取得位数为N位
ByVal的含义是使用值传递,而不是地址传递
Function c(byval a as intger, b as intger)as intger
c= a + b
End Function
使用
print c(1,2)
回答者:bxworks-五级2007-6-23 19:50

在Excel环境中运用VBA实现中文大写金额转换

在Excel环境中运用VBA实现中文大写金额转换

在Excel环境中运⽤VBA实现中⽂⼤写⾦额转换
龙源期刊⽹ /doc/3215185508.html
在Excel环境中运⽤VBA实现中⽂⼤写⾦额转换
作者:柳佳顾⼠学
来源:《数字技术与应⽤》2009年第12期
[摘要]在Excel中运⽤VBA实现了中⽂⼤写⾦额转换提⾼了⼯作效率
[关键词]VBA Excel 函数
[中图分类号]TD17[⽂献标识码]A[⽂章编号]1007-9416(2009)12-0110-02
在财会上很多情况下,需要从⼩到⼤写⾦额的转换,虽然我们通过设置Excel的单元格的特
殊格式,可以将数字转换为中⽂⼤写数字。

但这些⽅法有的不够实⽤,有的输出格式不符合财会规定。

下⾯我们提出在Excel环境中运⽤VBA技术实现中⽂⼤写⾦额转换。

1 环境选择
Excel 是微软公司集成办公软件Office 中的⼀个组件,是⽤户使⽤最为⼴泛的软件平台之⼀。

⽤其内嵌的编程语⾔VBA进⾏⼆次开发得到的应⽤软件,既可以使繁琐、重复操作⾃动化,提⾼⼯作效率和应⽤⽔平,同时⼜不改变Excel原有的界⾯风格、系统功能和操作⽅式,特别是
它的编辑、排版、打印功能。

⽤户不必经过特殊学习和培训,即可使⽤,⼤⼤降低软件的使⽤门槛,提⾼了软件的可⽤性。

2 VBA简介
Visual Basic for Applications(简称VBA)是新⼀代标准宏语⾔,它具有跨越多种Office 应⽤
软件并且控制应⽤软件对象的能⼒。

VBA提供了⾯向对象的程序设计⽅法,提供了⽐较完整的程序设计语⾔。

Office就不仅仅是应⽤程序,更是⼀个开发平台,可以利⽤VBA对Office 进⾏⼆次开发,扩展其功能。

Excel-VBA单词的首字母大小写转换

Excel-VBA单词的首字母大小写转换

Excel-VBA单词的首字母大小写转换应用场景任意对选择区域的字母大小写进行转换知识要点1:StrConv 函数返回按指定类型转换的 Variant (String)。

2:首先通过 Application.InputBox 输入转换方式3:在已选区域中转换Sub 批量大小写转换()Dim Rng As Range, types As ByteOn Error Resume NextIf TypeName(Selection) <> 'Range' Then MsgBox '请选择单元格区域', 64, '提示': Exit Sub'弹出对话框让用户选择转换方式,分别用,1 2 3 来执行不同的转换types = Application.InputBox('输入1:全部大写' & Chr(10) & '输入2:全部小写' & Chr(10) & '输入3:首字母大写', '转换方式', , , , , , 1)If Err <> 0 Then Exit Sub '如果有错误(输入值超过byte的有限范围)则退出If types <> 1 And types <> 2 And types <> 3 Then Exit Sub '如果输入的值不是1 2 3 则退出Application.ScreenUpdating = FalseFor Each Rng In Intersect(edRange, Selection) 'strconv函数,返回按指定类型转换variant,strconv(string,conversion,lcin),conversion = 1 将字符文字转换成大写,=2,转换成小写,=3,字母开通转换为大写Rng = StrConv(Rng, types) '根据输入的数值将单元格按对应的方式进行转换Next RngApplication.ScreenUpdating = True '恢复屏幕更新End Sub。

VBA字符串函数转换函数

VBA字符串函数转换函数

VBA字符串函数转换函数VBA 字符串函数&转换函数1,vba字符串函数列表:Trim(string) 去掉string左右两端空白Ltrim(string) 去掉string左端空白Rtrim(string) 去掉string右端空白Len(string) 计算string长度Left(string, x) 取string左段x个字符组成的字符串Right(string, x) 取string右段x个字符组成的字符串Mid(string, start,x) 取string从start位开始的x个字符组成的字符串Ucase(string) 转换为大写Lcase(string) 转换为小写Space(x) 返回x个空白的字符串Asc(string) 返回一个integer,代表字符串中首字母的字符代码Chr(charcode) 返回string,其中包含有与指定的字符代码相关的字符2,VBA转换函数列表:CBool(expression) 转换为Boolean型CByte(expression) 转换为Byte型CCur(expression) 转换为Currency型CDate(expression) 转换为Date型CDbl(expression) 转换为Double型CDec(expression) 转换为Decemal型CInt(expression) 转换为Integer型CLng(expression) 转换为Long型CSng(expression) 转换为Single型CStr(expression) 转换为String型CVar(expression) 转换为Variant型Val(string) 转换为数据型Str(number) 转换为String3,VBA时间函数:Now 返回一个Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。

Date 返回包含系统日期的Variant (Date)。

用VB编写将数字转换为大写汉字的函数

用VB编写将数字转换为大写汉字的函数

用VB编写将数字转换为大写汉字的函数
高芒;高虹;朱前飞
【期刊名称】《湖南大学学报:自然科学版》
【年(卷),期】1999(0)S1
【摘要】结合作者的工作实践,阐述了将数字转换为大写汉字的重要性和必要性,给出了算法,并用VB实现了该算法.
【总页数】7页(P206-211)
【关键词】大写汉字;数字转换;Visual;Basic
【作者】高芒;高虹;朱前飞
【作者单位】长沙交通学院计算机工程系
【正文语种】中文
【中图分类】TP314
【相关文献】
1.用VB编写波函数和电子云图像的显示 [J], 吕申壮
2.用VB编写函数曲线 [J], 白雪
3.阿拉伯数字转换成中文大写金额的存储过程的实现 [J], 曾凤;邱永华
4.罗马数字转换为大写汉字 [J],
5.Excel数字转换成大写汉字技巧 [J], 胡祖沛
因版权原因,仅展示原文概要,查看原文内容请购买。

VB专题:字符处理之字符替换

VB专题:字符处理之字符替换

1. 字符串函数的使用(1)Len(s):应用:s= 求字符串s长度的表达式:①。

②。

(2)Mid(s,i,n) 或 Mid(s,i):应用:s=“I very like the story book.”2. 字符串连接:应用:(1)顺序连接(表达式或赋值语句):。

(2)倒序连接(表达式或赋值语句):。

3.大小写转换小写转大写C=Mid(s,i,1)=“b”Chr(Asc(C)-32)二、字符替换1.单个字符替换任务描述:将字符串中的特定单个字符替换成另一个特定字符,如图所示:将text1中的”偶”(由Text2输入)替换成”我”(由Text3输入),将替换后的字符串由Text4输出。

Text1Text2Text3Private Sub Command1_Click()Dim s As String, ss As String,c1 As String, c2 As Strings = : c1 = : c2 = : ss = ""For i = 1 To Len(s)If ① Then ‘取子串,判断是否需要替换ss = ss + ②‘有替换的连接Elsess = ss + ③‘无替换的连接End IfNext i= ssEnd Sub思考并写出相应语句,然后完成上面的填空:(1)如何取子串(2)如何判断(是否需要替换)(3)如何连接字符串替换未替换小结:字符替换三步走:取子串----->判断------>重新连接2.任意长度字符串替换(1)(方法一)任务描述:将字符串中的特定字符串替换成另一个任意长度特定字符串,如图所示:将Text1中的”中学”(由Text2输入)替换成” middle school”(由Text3输入),将替换后的字符串由Text4输出。

Private Sub Command1_Click()Dim s As String, c1 As String, c2 As String s = : c1 = : c2 = : ss = ""i = 1Do While i <= Len(s)If ① Thenss = ss + c2Text1Text2Text3i = i + ②Elsess = ss + ③i = i + 1End IfLoop= ssEnd Sub思考并写出相应语句,然后完成上面的填空:(1)如何取子串(2)如何判断(是否需要替换)(3)如何连接字符串替换未替换Text1Text2Text3(2)(方法二)任务描述:将字符串中的特定字符串替换成另一个任意长度特定字符串,如图所示:将Text1中的”中学”(由Text2输入)替换成” middle school”(由Text3输入),将替换后的字符串由Text4输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Select Case num
Case 0
数字转大写 = "零"
Case 1
数字转大写 = "壹"
Case 2
数字转大写 = "贰"
Case 3
数字转大写 = "叁"
Case 4
End If
字符串_检查字符串是否为纯数字 = 1
End Function
'*************************************************************************
'**函 数 名:字符串_删除指定位置字符
'**输 入:str(Variant) - 待处理字符串
数位转换 = "佰"
Case 8
数位转换 = "仟"
Case 9
数位转换 = "亿"
Case 10
数位转换 = "拾"
Case 11
数位转换 = "佰"
Case 12
End If
If InStr(result, "零仟") > 0 Then
result = 字符串_删除指定位置字符(result, InStr(result, "零仟") + 1)
End If
If InStr(result, "零零") > 0 Then
数位转换 = "拾"
Case 3
数位转换 = "佰"
Case 4
数位转换 = "仟"
Case 5
数位转换 = "万"
Case 6
数位转换 = "拾"
Case 7
Case Else
字符串_删除指定位置字符 = Left(str, num - 1) & Right(str, Len(str) - num)
End Select
End Function
Public Function 数字转大写(num As Variant)
字符串_数字转大写 = result
End Function
'*************************************************************************
'**函 数 名:字符串_检查字符串是否为纯数字
'**输 入:字符串(Variant) - 任意字符串
result = 字符串_删除指定位置字符(result, InStr(result, "零零") + 1)
End If
Loop Until InStr(result, "零佰") = 0 And InStr(result, "零拾") = 0 And InStr(result, "零仟") = 0 And InStr(result, "零零") = 0
End If
Select Case num
Case 1
字符串_删除指定位置字符 = Right(str, Len(str) - 1)
Case Len(str)
字符串_删除指定位置字符 = Left(str, Len(str) - 1)
result = 字符串_删除指定位置字符(result, InStr(result, "零佰") + 1)
End If
If InStr(result, "零拾") > 0 Then
result = 字符串_删除指定位置字符(result, InStr(result, "零拾") + 1)
'**输 出:1表示为纯数字字符串,0表示为否
'**功能பைடு நூலகம்述:检查字符串是否为纯数字组成
'*************************************************************************
Public Function 字符串_检查字符串是否为纯数字(字符串 As String)
数位转换 = "仟"
End Select
End Function
s = Mid(sData, i, 1)
w = sLen + 1 - i
result = result & 数字转大写(s) & 数位转换(w)
Next
Do
If InStr(result, "零佰") > 0 Then
'** :num(Variant) - 待删除字符的位置编号
'**输 出:新的字符串
'**功能描述:删除字符串中自定位置的字
'*************************************************************************
'**功能描述:将数字转换为大写数字
'*************************************************************************
Public Function 字符串_数字转大写(sData As String)
Dim sLen As Integer
'*************************************************************************
'**函 数 名:字符串_数字转大写
'**输 入:sData(String) - 数字字符串(仅支持12位全数字字符串)
'**输 出:大写数字,如果返回-1则表示输入的字符串不符合规定
Public Function 字符串_删除指定位置字符(str As Variant, num As Variant)
'检查num是否大于待处理字串str的长度
If Len(str) < num Then
字符串_删除指定位置字符 = 0
Exit Function
Dim s As String
Dim w As Integer
Dim result As String
Dim i, a
sLen = Len(sData)
'检查sData是否为12位纯数字字符串
If sLen > 12 Or 字符串_检查字符串是否为纯数字(sData) = 0 Then
数字转大写 = "玖"
End Select
End Function
Public Function 数位转换(numlong As Variant)
Select Case numlong
Case 1
数位转换 = ""
Case 2
字符串_数字转大写 = -1 '错误返回-1,表示输入字符串不符合规定
Exit Function
End If
'开始转换
For i = 1 To sLen
On Error Resume Next
字符串 = 字符串 / 1
If err.Number = 13 Then
字符串_检查字符串是否为纯数字 = 0 '非纯数字
Exit Function
数字转大写 = "肆"
Case 5
数字转大写 = "伍"
Case 6
数字转大写 = "陆"
Case 7
数字转大写 = "柒"
Case 8
数字转大写 = "捌"
Case 9
相关文档
最新文档