• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      利用VBA自動計算歷年日平均氣溫月標準差

      2013-09-29 05:48:44吳有恒孫永順吳世美
      中低緯山地氣象 2013年1期
      關鍵詞:窗體編輯器單元格

      吳有恒,孫永順,吳世美

      (1.貴州省貴陽市氣象局,貴州 貴陽 550001;2.貴州省三穗縣氣象局,貴州 三穗 556500)

      1 引言

      VBA是Visual Basic For Application的簡稱,也叫做宏程序,是建立在Office中的一種應用程序開發(fā)工具。通過編寫代碼,使Excel顯示我們想要的計算結果,對于新建相同樣式的表格只需通過宏錄制功能便能使Excel自動生成,無需浪費時間去重復設計,在VB編輯器中還提供了可視化的窗體設計功能,只需拖動相應的控件到想要放置的位置上,再編寫相關事件,一個簡單的窗體便產(chǎn)生了。筆者通過實現(xiàn)工作中用到的歷年日均氣溫月標準差的自動計算來擴展VBA編程能力。

      2 功能分析及算法

      2.1 讀取A文件氣溫并求平均值

      打開Excel文件,使用快捷鍵Alt+F11即可調(diào)出VB編輯器,在編輯器左上角的工程資源管理窗口中點擊鼠標右鍵新建標準模塊,模塊即是編寫程序代碼的一個框架,通過在其中創(chuàng)建Sub子過程來實現(xiàn)算法。

      月地面氣象資料格式文件(A文件)按一定順序存放著該月各氣象要素數(shù)據(jù),通過Open語句打開A文件并存放在Open語句分配的緩沖區(qū)內(nèi)供文件進行輸入或輸出操作,下面是讀取A文件氣溫并求日平均的值的語句(中文部分是注釋):

      2.2 自動生成所需樣式的表格

      打開Excel,選擇“工具”→“宏”→“錄制新宏”打開錄制窗口,借助宏錄制功能設計表格樣式、字體大小等,錄制完成后生成的代碼會保存在VB編輯器的模塊中。讀取A文件氣溫數(shù)據(jù)計算得到的日平均值要在生成的表格中按順序存放,如圖1。

      圖1 各年日平均氣溫及月標準差表

      在表的最后一行是日平均氣溫的月標準差,Excel中有直接計算樣本標準差的公式,以1月為例在程序中加入代碼Range("B35").FormulaR1C1="=STDEV(R[-32]C:R[-2]C)",該語句表示B35這個單元格使用公式STDEV計算從第3行(R[-32]表示35-32=3)到第33行(R[-2]表示35-2=33)的樣本標準差。對于新建如圖1的其余年份的表格,只需把生成表格樣式的代碼放到循環(huán)語句中便能自動生成。

      2.3 創(chuàng)建超鏈接方便查閱

      在求日平均氣溫月標準差的30 a均值時新建如圖2的表格。

      為方便查看各年日平均氣溫及月標準差,在該表的A列創(chuàng)建訪問相應年份的超鏈接,需要用到Hyperlinks對象的Add方法,即超鏈接的添加方法,以代碼中的語句為例:

      圖2 歷年日平均氣溫月標準差及均值表

      "跳轉到"&Sheets("各年日平均氣溫月標準差及30 a均值").Name,TextToDisplay:="返回目錄"

      該句中Anchor:=.Range("A2")表示設置A2單元格為超鏈接;Address:=""表示無引用外部文件或訪問網(wǎng)址的鏈接;SubAddress:="目錄"表示引用本工作薄內(nèi)名為“目錄”的區(qū)域;ScreenTip:="跳轉到"&Sheets("各年日平均氣溫月標準差及30 a均值").Name表示當鼠標移動到A2單元格時會提示“跳轉到各年日平均氣溫月標準差及30 a均值”;TextToDisplay:="返回目錄"表示在A2單元上顯示“返回目錄”,如圖1中A2單元格的藍色字體所示。

      3 窗體設計

      在VB編輯器中通過插入用戶窗體,設計了3個文本框用于獲取區(qū)站號、開始年份和結束年份,通過傳遞用戶輸入的數(shù)據(jù)改變A文件名,使得日平均氣溫月標準差的計算同樣適用于其他臺站,而且開始和結束年份不固定可以任意輸入,但是對于文本框輸入內(nèi)容都有條件限定,區(qū)站號只允許輸入5位數(shù)字,開始和結束年份只允許輸入4位數(shù)字,因為旬月歷史數(shù)據(jù)用的都是近30 a的氣候資料,所以年份間隔必須為30 a,輸入錯誤會彈出消息框要求重新輸入,區(qū)站號和年份輸入正確后會提示“確保所有的A文件都放置在D:OSSMO 2004ReportFile下”,該目錄也是測報軟件默認存放A文件的路徑。

      最后點擊上圖中計算按鈕后便會呈現(xiàn)如圖1、圖2所示樣式的31張表格。

      4 小結

      圖3 計算器界面

      使用Excel內(nèi)置的VB編輯器編寫宏程序計算歷年日平均氣溫月標準差雖然只是實現(xiàn)了旬月歷史數(shù)據(jù)中的一項,但通過此次編程實踐提升了解決工作問題的能力,對于其他歷史數(shù)據(jù)只需對代碼做相應改動即可實現(xiàn)。之所以選擇使用VBA還在于Office辦公軟件的普及,它能引導Excel創(chuàng)建自動化操作并快速處理數(shù)據(jù),實現(xiàn)很多Excel基本功能所不能實現(xiàn)的功能。最后還需說明的是宏的運行,打開“工具”→“宏”→“安全性”,只需選擇中級即可,之后在打開本文所示已寫好宏程序的Excel文檔時,點擊“啟用宏”便會彈出圖3對話框。

      [1]韓小良,韓舒婷.Excel VBA高效辦公實用寶典[M].北京:中國鐵道出版社,2008.

      [2]黃世芹,王珺.VB編程環(huán)境下如何調(diào)用和生成EXCEL文檔[J]. 貴州氣象,2010,34(2):38-39.

      猜你喜歡
      窗體編輯器單元格
      玩轉方格
      玩轉方格
      試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應用
      檔案天地(2019年5期)2019-06-12 05:12:02
      你距離微信創(chuàng)作達人還有多遠?
      車輛段收發(fā)車運行圖編輯器的設計與實現(xiàn)
      淺談Excel中常見統(tǒng)計個數(shù)函數(shù)的用法
      西部皮革(2018年6期)2018-05-07 06:41:07
      基于VLIW目標機的ELF二進制編輯器設計與實現(xiàn)
      基于LayeredWindow的異形窗體局部刷新
      中文信息(2014年2期)2014-03-06 23:49:14
      巧設WPS窗體控件讓表格填寫更規(guī)范
      WinCE.net下圖形用戶界面的開發(fā)
      静乐县| 枣强县| 连云港市| 道真| 抚宁县| 博客| 平陆县| 禹州市| 桃园市| 蒙阴县| 托克逊县| 泗阳县| 微山县| 瓦房店市| 达拉特旗| 温泉县| 南昌县| 德令哈市| 宁津县| 抚州市| 板桥市| 额济纳旗| 得荣县| 香格里拉县| 石林| 沾化县| 双城市| 元氏县| 高阳县| 新蔡县| 称多县| 保靖县| 蕉岭县| 称多县| 许昌市| 六盘水市| 汉川市| 富顺县| 六盘水市| 唐山市| 小金县|