Excel是大家非常熟悉的應用軟件,其使用非常方便。尤其是其強大的函數功能,為我們帶來了極大方便,但有時我們為實現一項規定的功能,可能用到幾個函數或者采用嵌套函數,這樣應用起來,也不太方便;或者使用自定義公式進行計算,就沒有現成的公式可用。可喜的是,我們可以創建自定義函數UDF(User—defined function) ,它的運行與Excel中自帶的">

      技術頻道

      excel自定義函數在水質工作中的應用

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


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


      圖2加載宏


      圖3使用自定義函數


        假如你把調用這個宏的Excel文件拷貝到別的機子上運行,會出現“當前所要打開的文檔含有其他文檔的鏈接,是否要使用其他工作簿中的改動更新當前工作簿”的提示,可以顯示原先計算的數據,這是因為在Excel中的[工具]→[選項]→[重新計算]中,一般選中“保存外部鏈接數據”,但你不能重新計算,因為不能鏈接這個宏,別人機子上根本就沒有這個函數。
        此外,我們還可以為“加載宏”添加相關說明,這樣更有利于自定義函數的維護。(如圖3),找到“高錳酸鹽指數濃度計算公式.xla”,點擊[右鍵]→[屬性]→[摘要] (如圖4),在描述里添加所需內容來對函數進行相關描述,其中“標題”部分將出現在“加載宏”的方框中,“備注”部分將出現在下面的函數說明部分。這時再看看,夠不夠專業。在Excel 97中也可以在其右鍵屬性中作相應更改。

      圖4添加中文描述

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 久久久久人妻精品一区二区三区| 亚洲伦理一区二区| 亚洲国产一区在线观看| 精品国产日韩亚洲一区91| 国产精品高清一区二区三区| 精品中文字幕一区二区三区四区| 亚洲日本va一区二区三区| 亚洲av无码一区二区三区乱子伦 | 伦精品一区二区三区视频| 精品人妻一区二区三区四区 | 精品乱码一区二区三区在线| 人妻内射一区二区在线视频| 国产精品成人免费一区二区| 亚洲综合无码一区二区三区| 国产成人精品无码一区二区| 一区二区三区免费看| 国产精品伦子一区二区三区| 午夜视频在线观看一区二区| 无码人妻精品一区二区三区蜜桃| 一区二区三区观看免费中文视频在线播放| 一区二区三区精品视频| 精品成人一区二区三区免费视频| 性盈盈影院免费视频观看在线一区| 国产精品视频一区二区猎奇| 无码丰满熟妇一区二区| 亚洲一区AV无码少妇电影| 无码人妻精一区二区三区| 亚洲欧美国产国产一区二区三区| 日韩成人无码一区二区三区| 国模无码视频一区二区三区| 国产激情一区二区三区四区| 正在播放国产一区| 波多野结衣中文一区| 好吊视频一区二区三区| 亚洲中文字幕无码一区二区三区| 亚洲一区免费观看| 亚洲国产成人一区二区三区| 国产福利91精品一区二区| 国产乱人伦精品一区二区在线观看 | 中文字幕一区二区三区日韩精品| 日韩亚洲一区二区三区|