乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      人民幣大寫轉(zhuǎn)換函數(shù)

       庋藏天下 2012-09-18
      Function N2RMB(M)
          y = Int(Round(100 * Abs(M)) / 100)
          j = Round(100 * Abs(M) + 0.00001) - y * 100
          f = (j / 10 - Int(j / 10)) * 10
          A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")
          b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1, "", IIf(f > 1, "零", "")))
          c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")
          N2RMB = IIf(Abs(M) < 0.005, "", IIf(M < 0, "負(fù)" & A & b & c, A & b & c))
      End Function

      另外一個(gè)函數(shù):
      Function dx(M) '一條語句163個(gè)字符
          dx = Replace(Replace(Replace(Join(Application.Text(Split(Format(M, " 0. 0 0;負(fù) 0. 0 0;   ")), ["[DBnum2]"&{0,"","元0角;;元零","0分;;整"}]), a), "零元零", a), "零元", a), "零整", "整")
      End Function
      代碼解析:
      代碼中使用了Replace()、Join()、Split()、Format()等4個(gè)VBA函數(shù),以及1個(gè)工作表函數(shù)Text()。

      Join()函數(shù):返回一個(gè)字符串,該字符串是通過連接某個(gè)數(shù)組中的多個(gè)子字符串而創(chuàng)建的。這與Split函數(shù)的作用完全相反。
      格式:Join(list[,delimiter])
      list:必需的。包含被連接子字符串的一維數(shù)組。
      delimiter:可選的。在返回字符串中用于分隔子字符串的字符。如果忽略該項(xiàng),則使用空格來分隔子字符串。如果該項(xiàng)是零長度字符串(""),則返回的字符串中,各子串之間沒有分隔符。
      代碼中用變量a代替Join()的第二參數(shù)。因a的初始值為空,故此參數(shù)為空字符(""),表明返回的字符串中,各子串間無分隔。
      例如:
      Join([{"Join","using","spaces"}]) 返回結(jié)果是:"Join using spaces"
      Join([{"Join","using","emptys"}], a) 返回結(jié)果是:"Joinusingemptys"

      Split()函數(shù):返回一個(gè)下標(biāo)從零開始的一維數(shù)組,它包含指定數(shù)目的子字符串。
      格式:Split(expression[,delimiter[,limit[,compare]]])
      expression:必需的。包含子字符串和分隔符的字符串表達(dá)式 。如果expression是一個(gè)長度為零的字符串(""),Split則返回一個(gè)空數(shù)組,即沒有元素和數(shù)據(jù)的數(shù)組。
      delimiter:可選的。用于標(biāo)識(shí)子字符串邊界的字符串字符。如果忽略,則使用空格字符(" ")作為分隔符。如果delimiter是一個(gè)長度為零的字符串,則返回的數(shù)組僅包含一個(gè)元素,即完整的expression字符串。
      limit:可選的。要返回的子字符串?dāng)?shù),忽略則默認(rèn)-1,表示返回所有的子字符串。
      compare:可選的。數(shù)字值,表示判別子字符串時(shí)使用的比較方式。忽略則默認(rèn)1,執(zhí)行文字比較。

      Format()函數(shù):根據(jù)有效的命名表達(dá)式來對(duì)指定的表達(dá)式進(jìn)行格式化。
      格式:Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
      各參數(shù)含義如下:
      expression:必要參數(shù)。任何有效的表達(dá)式。
      format:可選參數(shù)。有效的命名表達(dá)式或用戶自定義格式表達(dá)式。
      firstdayofweek:可選參數(shù)。常數(shù),表示一星期的第一天。
      firstweekofyear:可選參數(shù)。常數(shù),表示一年的第一周。

      代碼中format函數(shù)的第二參數(shù)是" 0. 0 0;負(fù) 0. 0 0;   ",格式中的0為占位符,每個(gè)0前邊都有一個(gè)空格,第二個(gè)分號(hào)(;)后邊有三個(gè)空格。第一個(gè)0表示整數(shù)部分的數(shù)字,第二個(gè)0表示小數(shù)十分位數(shù)字,第三個(gè)0表示小數(shù)百分位數(shù)字。第一個(gè)0前邊的空格,表示這個(gè)空格前邊還有一個(gè)空字符chr(0),換句話說,也就是空字符與整數(shù)數(shù)字之間有一個(gè)空格;第二個(gè)0前邊的空格,表示整數(shù)數(shù)字與十分位數(shù)字之間有一個(gè)空格;第三個(gè)0前邊的空格,表示十分位數(shù)字與百分位數(shù)字之間有一個(gè)空格。格式字串由分號(hào)(;)分成3段,第一段為M>0時(shí)的格式,第二段為M<0時(shí)的格式,比如-10.2將被格式化為“負(fù) 10. 2 0”;第三段為M=0時(shí)的格式,這里用3個(gè)空格代替,其目的是將四個(gè)空字符(由這3個(gè)空格分隔的)送到數(shù)字?jǐn)?shù)組中。這里,F(xiàn)ormat 函數(shù)的參數(shù)居然和Text函數(shù)類似,也可以體現(xiàn)“正負(fù)零”3種狀態(tài)(text是“正負(fù)零文本”4種狀態(tài)),但不支持條件參數(shù)。
      例如:
      若M=123.09,則:
      format(M," 0. 0 0;負(fù) 0. 0 0;   ")=" 123. 0 9"
      Split(Format(M, " 0. 0 0;負(fù) 0. 0 0;   "))={"",123,0,9}
      上式中,因各子串之間是由空格分隔的,所以Split()的第二參數(shù)可省略,即默認(rèn)分隔符為空格。
      若M=-123.09,則:
      format(M," 0. 0 0;負(fù) 0. 0 0;   ")="負(fù) 123. 0 9"
      Split(Format(M, " 0. 0 0;負(fù) 0. 0 0;   "))={"負(fù)",123,0,9}

      代碼中工作表函數(shù)Text()第一參數(shù)是數(shù)組,第二參數(shù)(即格式參數(shù))也是數(shù)組。兩個(gè)數(shù)組中的元素是逐一對(duì)應(yīng)的關(guān)系?;ɡㄌ?hào){}表示工作表常量數(shù)組,方括號(hào)[]在這里表示VBA的常量數(shù)組。實(shí)際上,表達(dá)式["[DBnum2]"&{0, "", "元0角;;元零", "0分;;整"}]的計(jì)算結(jié)果即為{"[DBnum2]0", "[DBnum2]", "[DBnum2]元0角;;元零", "[DBnum2]0分;;整"}。

      表達(dá)式Text(Split(Format(M, " 0. 0 0;負(fù) 0. 0 0;   ")), ["[DBnum2]"&{0,"","元0角;;元零","0分;;整"}])   屬于Text()函數(shù)的高級(jí)應(yīng)用,
      可用3列縱向數(shù)組表示如下:
      若M = 123.09                                                                                   若M = ─0.05
      數(shù)字?jǐn)?shù)組         格式數(shù)組                             Text()返回結(jié)果數(shù)組        數(shù)字?jǐn)?shù)組         格式數(shù)組                              Text()返回結(jié)果數(shù)組
      (空字符)        "[DBnum2]0"                        (空字符)                          負(fù)                  "[DBnum2]0"                         負(fù)
      123               "[DBnum2]"                          壹佰貳拾叁                      0                   "[DBnum2]"                           零
      0                   "[DBnum2]元0角;;元零"        元零                                0                   "[DBnum2]元0角;;元零"         元零
      9                   "[DBnum2]0分;;整"               玖分                                5                   "[DBnum2]0分;;整"                伍分

      然后用Join()函數(shù)將結(jié)果數(shù)組連接起來。Join()的第二參數(shù)用變量a代替,變量a的初始值為空,表示子串之間無分隔。
      當(dāng)M=123.09,則Join后的大寫金額為“壹佰貳拾叁元零玖分”,
      當(dāng)M=─0.05,則Join后的大寫金額為“負(fù)零元零伍分”。
      最后,將不符合大寫規(guī)則的“零元零”、“零元”替換為空,將“零整”替換為“整”。
      若源數(shù)據(jù)M=0,則大寫結(jié)果顯示為空白。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多