Excel是大家非常熟悉的應(yīng)用軟件,其使用非常方便。尤其是其強(qiáng)大的函數(shù)功能,為我們帶來(lái)了極大方便,但有時(shí)我們?yōu)閷?shí)現(xiàn)一項(xiàng)規(guī)定的功能,可能用到幾個(gè)函數(shù)或者采用嵌套函數(shù),這樣應(yīng)用起來(lái),也不太方便;或者使用自定義公式進(jìn)行計(jì)算,就沒有現(xiàn)成的公式可用。可喜的是,我們可以創(chuàng)建自定義函數(shù)UDF(User—defined function) ,它的運(yùn)行與Excel中自帶的">

      技術(shù)頻道

      excel自定義函數(shù)在水質(zhì)工作中的應(yīng)用

      Excel是大家非常熟悉的應(yīng)用軟件,其使用非常方便。尤其是其強(qiáng)大的函數(shù)功能,為我們帶來(lái)了極大方便,但有時(shí)我們?yōu)閷?shí)現(xiàn)一項(xiàng)規(guī)定的功能,可能用到幾個(gè)函數(shù)或者采用嵌套函數(shù),這樣應(yīng)用起來(lái),也不太方便;或者使用自定義公式進(jìn)行計(jì)算,就沒有現(xiàn)成的公式可用。可喜的是,我們可以創(chuàng)建自定義函數(shù)UDF(User—defined function) ,它的運(yùn)行與Excel中自帶的函數(shù)完全相同。建立自定義函數(shù)有以下幾個(gè)優(yōu)點(diǎn):建立自己特殊的功能和名稱的函數(shù);能將復(fù)雜的、嵌套的、多個(gè)原有的函數(shù)組合在一起,發(fā)揮更大的威力,使用、維護(hù)更加方便。
        比如在水質(zhì)計(jì)算中,高錳酸鹽指數(shù)的計(jì)算公式非常繁瑣,而且含必須將結(jié)果修約至0.1,還得考慮逢5奇進(jìn)偶舍的問(wèn)題。利用計(jì)算器逐步計(jì)算很是麻煩;在EXCEL中利用單元格引用計(jì)算稍有不注意,可能造成計(jì)算上差錯(cuò),而且每次都得建立,很不方便。現(xiàn)在我們利用EXCEL自帶的VBA編輯器建立自己的函數(shù)來(lái)解決這個(gè)問(wèn)題。
        首先進(jìn)入Excel,在[工具]→[宏]→[Visul Basic編輯器](也可按組合鍵[Alt+F11]),在“Visul Basic編輯器”中選擇[插入]→[添加模塊],將模塊名稱改為“高錳酸鹽指數(shù)濃度計(jì)算公式”,在代碼窗口輸入下列函數(shù):
      Public Function CImn(C As Single, V0 As Single, V1 As Single, V2 As Single, V As Integer)‘高錳酸鹽指數(shù)計(jì)算公式
      Dim DotLocation As Integer ‘定義小數(shù)點(diǎn)位置變量
      ‘*************************************************************************
      CImn = ((((10 + V1) * 10 / V2 - 10) - (((10 + V0) * 10 / V2 - 10) * (100 - V) / 100))) * C * 8000 / V
      ‘*************************************************************************
      ‘保留一位小數(shù)
      ‘當(dāng)CIMN值小于1時(shí),自動(dòng)補(bǔ)上個(gè)位0
      If CImn < 1 Then
      CImn = 0 & CImn
      End If
      ‘確定小數(shù)點(diǎn)的位置
      DotLocation = InStr(CImn, ".")
      ‘判斷小數(shù)點(diǎn)后第二位是否為5
      If Mid(CImn, DotLocation + 2, 1) = 5 Then
      If Len(CImn) <= DotLocation + 2 And Mid(CImn, DotLocation + 1, 1) Mod 2 = 0 Then
      CImn = Left(CImn, DotLocation + 1) ‘為5且5后沒有數(shù)和5前一位為偶數(shù),直接用round()函數(shù)修約
      Else
      CImn = Round(CImn, 1)
      End If
      Else
      CImn = Round(CImn, 1) ‘不為5,直接用round()函數(shù)修約
      End If
      CImn = Format(Round(CImn, 1), "#0.0")
      End Function
        我們知道,Excel中函數(shù)都有一個(gè)說(shuō)明用以幫助使用,我們也要給這個(gè)函數(shù)添加一個(gè)說(shuō)明。在工具欄中選擇“對(duì)象瀏覽器”(如圖1),選擇我們所做“高錳酸鹽指數(shù)濃度計(jì)算公式”模塊,在其[右鍵]→[屬性]中添加關(guān)于對(duì)這個(gè)函數(shù)的描述,這個(gè)描述將出現(xiàn)在Excel中關(guān)于函數(shù)的說(shuō)明中,如果你要對(duì)軟件保密的話,在“模塊”上按右鍵,[VBAproject屬性]→[保護(hù)中設(shè)置密碼],別人就看不到你的源程序了。


      圖1描述函數(shù)
        這時(shí),退出,回到Excel界面,將這個(gè)文件另存為:類型為“Microsoft Excel加載宏”,在Excel 2003中,它會(huì)自動(dòng)更改保存位置為“C:\Documents and Settings\wzwemc(電腦用戶名)\Application Data\Microsoft\AddIns” (系統(tǒng)裝在c:\windows),當(dāng)然,你也可以把這個(gè)文件“高錳酸鹽指數(shù)濃度計(jì)算公式.xla”,直接復(fù)制到office\library(office的安裝路徑下),而在Excel 97中只能放在后一個(gè)位置。使用函數(shù)很簡(jiǎn)單,點(diǎn)擊[工具]→[加載宏],在你創(chuàng)建的“高錳酸鹽指數(shù)濃度計(jì)算公式”前打個(gè)勾,如圖2。在單元格直接輸入“=CImn()”,選中相應(yīng)的參數(shù)即可(如圖3)。是不是像Microsoft office提供的函數(shù)一樣,很有點(diǎn)專業(yè)味道。


      圖2加載宏


      圖3使用自定義函數(shù)


        假如你把調(diào)用這個(gè)宏的Excel文件拷貝到別的機(jī)子上運(yùn)行,會(huì)出現(xiàn)“當(dāng)前所要打開的文檔含有其他文檔的鏈接,是否要使用其他工作簿中的改動(dòng)更新當(dāng)前工作簿”的提示,可以顯示原先計(jì)算的數(shù)據(jù),這是因?yàn)樵贓xcel中的[工具]→[選項(xiàng)]→[重新計(jì)算]中,一般選中“保存外部鏈接數(shù)據(jù)”,但你不能重新計(jì)算,因?yàn)椴荒苕溄舆@個(gè)宏,別人機(jī)子上根本就沒有這個(gè)函數(shù)。
        此外,我們還可以為“加載宏”添加相關(guān)說(shuō)明,這樣更有利于自定義函數(shù)的維護(hù)。(如圖3),找到“高錳酸鹽指數(shù)濃度計(jì)算公式.xla”,點(diǎn)擊[右鍵]→[屬性]→[摘要] (如圖4),在描述里添加所需內(nèi)容來(lái)對(duì)函數(shù)進(jìn)行相關(guān)描述,其中“標(biāo)題”部分將出現(xiàn)在“加載宏”的方框中,“備注”部分將出現(xiàn)在下面的函數(shù)說(shuō)明部分。這時(shí)再看看,夠不夠?qū)I(yè)。在Excel 97中也可以在其右鍵屬性中作相應(yīng)更改。

      圖4添加中文描述

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 日本在线一区二区| 无码国产精品一区二区高潮| 精品国产亚洲一区二区在线观看 | 精品永久久福利一区二区| 国产主播一区二区三区在线观看 | 日韩视频一区二区三区| 国产伦精品一区二区三区精品| 日韩人妻无码一区二区三区久久 | 国产在线视频一区二区三区98| 欧美一区内射最近更新| 久久精品午夜一区二区福利| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 国产av天堂一区二区三区| 国产剧情一区二区| 日本人的色道www免费一区| 无码国产精品一区二区免费虚拟VR | 制服丝袜一区在线| 香蕉免费一区二区三区| 亚洲综合色自拍一区| 国产一区二区三区高清在线观看| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产婷婷色一区二区三区| 国产福利电影一区二区三区,亚洲国模精品一区 | 波多野结衣免费一区视频| 狠狠色婷婷久久一区二区| 国产av成人一区二区三区| 亚洲一区二区三区自拍公司| 国产一区二区三区乱码| 亚洲国产一区二区a毛片| 久久久久无码国产精品一区| 国产亚洲一区二区三区在线不卡 | 亚洲乱码av中文一区二区| 无码人妻一区二区三区一| 亚洲高清一区二区三区| 亚洲精品色播一区二区| 亚洲国产一区二区三区在线观看| 亚洲一区二区三区在线观看网站| bt7086福利一区国产| 日韩三级一区二区| 一区二区三区视频免费观看 | 无码人妻一区二区三区一|