国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用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即可調出VB編輯器,在編輯器左上角的工程資源管理窗口中點擊鼠標右鍵新建標準模塊,模塊即是編寫程序代碼的一個框架,通過在其中創(chuàng)建Sub子過程來實現(xiàn)算法。

月地面氣象資料格式文件(A文件)按一定順序存放著該月各氣象要素數(shù)據(jù),通過Open語句打開A文件并存放在Open語句分配的緩沖區(qū)內供文件進行輸入或輸出操作,下面是讀取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:="目錄"表示引用本工作薄內名為“目錄”的區(qū)域;ScreenTip:="跳轉到"&Sheets("各年日平均氣溫月標準差及30 a均值").Name表示當鼠標移動到A2單元格時會提示“跳轉到各年日平均氣溫月標準差及30 a均值”;TextToDisplay:="返回目錄"表示在A2單元上顯示“返回目錄”,如圖1中A2單元格的藍色字體所示。

3 窗體設計

在VB編輯器中通過插入用戶窗體,設計了3個文本框用于獲取區(qū)站號、開始年份和結束年份,通過傳遞用戶輸入的數(shù)據(jù)改變A文件名,使得日平均氣溫月標準差的計算同樣適用于其他臺站,而且開始和結束年份不固定可以任意輸入,但是對于文本框輸入內容都有條件限定,區(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內置的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)境下如何調用和生成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ī)范
銀河編輯器,艷壓“星際2”?
泰顺县| 汕尾市| 固阳县| 洛隆县| 凌云县| 西平县| 信丰县| 灵石县| 鲁甸县| 澎湖县| 凌云县| 绍兴市| 湾仔区| 郸城县| 轮台县| 永丰县| 荔浦县| 内江市| 六盘水市| 舟山市| 金华市| 招远市| 衡山县| 临泽县| 思茅市| 开封市| 新干县| 铁岭县| 库伦旗| 五指山市| 襄城县| 岱山县| 班玛县| 石狮市| 长阳| 洛浦县| 金寨县| 都江堰市| 富平县| 科技| 阿瓦提县|