自定義函式 Excel之自定義函式

2021-10-12 21:22:13 字數 1646 閱讀 2850

在excel中,當系統函式不能滿足我們的需求時候,我們可以使用vba自定義函式,如抓取網頁資料,翻譯詞彙,手機號歸屬地查詢等。下面將介紹2個自定義函式,

idymd函式 – 身份證年月日性別

通過身份證號,返回性別,出生年月日。

語法:= idymd(id)

引數:id,身份證號,預設身份證長度18位。

vba**如下:

option explicitpublic function idymd(id as string) as string    '定義變數    dim strymd as string    dim str*** as string    if len(id) = 18 then        '擷取出生年月日        strymd = mid(id, 7, 8)        '奇數--男;偶數--女        str*** = iif((mid(id, 17, 1) mod 2) = 0, "女", "男")        '返回結果        idymd = str*** & "-" & strymd    else        idymd = "身份證長度錯誤"    end ifend function
adrsmobile函式 – 號碼歸屬地返回手機號碼歸屬地。

語法:= adrsmobile(strmobile)

引數:strmobile,手機號。

vba**如下:

option explicitpublic function adrsmobile(strmobile as string) as string    dim xmlhttp as object    set xmlhttp = createobject("msxml2.xmlhttp")'傳送請求xmlhttp.open "get", "" & strmobile, false    xmlhttp.send    '等待響應    do while xmlhttp.readystate <> 4        doevents    loop    '得到請求資料    dim strreturn as string    strreturn = xmlhttp.responsetext    '處理資料    dim strtype as string, strpro as string, strcity as string    strtype = replace(split(split(strreturn, ",")(2), ":")(1), """", "")    strpro = replace(split(split(strreturn, ",")(4), ":")(1), """", "")strcity = replace(split(split(strreturn, ",")(5), ":")(1), """", "")adrsmobile = strtype & "-" & iif(strpro = strcity, strpro, strpro & "-" & strcity)end function

Excel 自定義函式

假設我們在excel中有以下需求 你可以巢狀使用if函式,判斷每乙個分數屬於哪乙個區間。但是,4層if會不會很容易出錯 如果是5個區間,甚至是10個區間呢?巢狀使用10個if不太現實,也很容易出錯吧。其實在excel中,我們可以自定義自己的函式,使用vb實現 下面的內容就介紹如何在excel中新增自...

自定義view之自定義屬性

1.首先在res的values檔案下新建乙個名為attrs.xml檔案 在該xml檔案中編寫我們需要的屬性 declare styleable後面的name必須要與接下來要自定義的view名一致。attr 後面的name表示需要自定義的屬性,format表示這些屬性的型別 2.新建乙個類繼承text...

自定義函式

使用者自定義函式是sqlserver的資料庫物件,他不能應用於一系列改變資料庫狀態的操作。但它可以像系統函式那樣在查詢中或儲存過程中等中的程式段中使用。也可以像儲存過程一樣通過execute命令來執行,使用者自定義函式中儲存了transact sql可以返回一定的值。在sqlserver中根據函式返...