嚴(yán)勝華 王紫燕
摘? 要:通過(guò)excel宏的VBA二次開(kāi)發(fā)功能,編寫Excel宏二次開(kāi)發(fā)實(shí)例,實(shí)現(xiàn)快捷、準(zhǔn)確、高效的處理有規(guī)則的數(shù)據(jù),大大的提高了確權(quán)登記數(shù)據(jù)庫(kù)建庫(kù)的效率。
關(guān)鍵詞:excel宏,VBA二次開(kāi)發(fā),農(nóng)村土地承包經(jīng)營(yíng)權(quán)建庫(kù)
1.引言
有序開(kāi)展農(nóng)村土地承包經(jīng)營(yíng)權(quán)確權(quán)登記發(fā)證,有利于落實(shí)黨的強(qiáng)農(nóng)惠農(nóng)政策,有利于發(fā)展現(xiàn)代農(nóng)業(yè)。通過(guò)開(kāi)展確權(quán)登記,可以明確農(nóng)村土地的地塊界線、面積大小、具體位置,有利于保護(hù)好耕地,保障13億人的吃飯問(wèn)題;有利于國(guó)家依據(jù)登記的數(shù)據(jù)有針對(duì)性的制訂和落實(shí)一系列的強(qiáng)農(nóng)惠農(nóng)政策,擬定現(xiàn)代農(nóng)業(yè)發(fā)展規(guī)劃,出臺(tái)促進(jìn)土地流轉(zhuǎn)的政策措施,促進(jìn)農(nóng)業(yè)穩(wěn)定發(fā)展和拓寬農(nóng)民持續(xù)增收渠道;通過(guò)引導(dǎo)土地承包經(jīng)營(yíng)權(quán)的規(guī)范流轉(zhuǎn),在堅(jiān)持家庭經(jīng)營(yíng)基礎(chǔ)上,大力促進(jìn)種田大戶、合作社、家庭農(nóng)場(chǎng)等新型農(nóng)業(yè)經(jīng)營(yíng)主體的發(fā)育、壯大,實(shí)現(xiàn)規(guī)模經(jīng)營(yíng),著力解決“將來(lái)誰(shuí)來(lái)種地”的問(wèn)題。所以做好農(nóng)村土地承包經(jīng)營(yíng)權(quán)確權(quán)頒證工作意義重大,而如何快速準(zhǔn)確有效地建好數(shù)據(jù)庫(kù)是確權(quán)頒證中重要的關(guān)鍵的一步。
2.excel宏在建庫(kù)中的應(yīng)用
數(shù)據(jù)整理入庫(kù)是建立一個(gè)高效實(shí)用的土地承包經(jīng)營(yíng)權(quán)管理系統(tǒng)的關(guān)鍵一環(huán)。
建庫(kù)包括新建空庫(kù)、Mapgis轉(zhuǎn)shp、匹配制作地塊屬性表、承包方、家族成員整理、制作承包地塊信息表、制作共有地塊信息表、數(shù)據(jù)庫(kù)維護(hù)、出成果、打證、成果整理歸檔等。
分析農(nóng)經(jīng)權(quán)發(fā)證流程,制約入庫(kù)效率的主要有入庫(kù)前相關(guān)表格的制作(地塊屬性表、承包方表、家庭成員表、地塊信息表、共有地塊信息表)和打印經(jīng)營(yíng)權(quán)證。因?yàn)檫@些數(shù)據(jù)有一定的規(guī)則,整理這些表利用excel宏編程來(lái)批量處理有規(guī)則數(shù)據(jù)的功能,編寫相應(yīng)的代碼,可以快速準(zhǔn)確處理好這些表格數(shù)據(jù)。
3.建庫(kù)中用到的excel宏實(shí)例
3.1 “單共宗匯總”實(shí)例
經(jīng)過(guò)二輪公示后地塊數(shù)據(jù)是分別按單宗各組、共宗各組分別存放在不同的表單中的,需要把這些單宗各組數(shù)據(jù)匯總在一張表格里,共宗各組數(shù)據(jù)匯總在一張表里。
“單宗匯總”流程如下:1、新建“單宗”表單;2、讀取B列有幾行記為j行;3、選定A~O列,2~j行單元格;4、復(fù)制;5、選定“單宗”表單最后一行,第一列;6、粘貼;7、保存。
“共宗匯總”流程:1:判斷是否有“共宗”表單;2、如果是“是”,則不處理;如果是“否”,則進(jìn)行下一步;3、新建“共宗”表單;4、讀取B列有幾行記為j行;5、選選定A~O列,2~j行單元格;6、復(fù)制;7、選定“共宗”表單最后一行,第一列;8、粘貼;9、打開(kāi)另一個(gè)共宗表單,重復(fù)4~8步。
實(shí)現(xiàn)過(guò)程:(1)首先設(shè)置宏安全性為中級(jí)或低級(jí),點(diǎn)擊“工具”->“宏”->“宏安全性”->“安全級(jí)”選項(xiàng)卡->“中”或“低”。這個(gè)只是初次使用excel的VBA編程時(shí)設(shè)置好就可以,以后就不用設(shè)置。(2)創(chuàng)建新宏?!肮ぞ摺?>“宏”->“錄制新宏”,在彈出的對(duì)話框?qū)?yīng)項(xiàng)中分別輸入宏名稱和實(shí)現(xiàn)的快捷鍵之后,點(diǎn)“確定”。(3)編寫代碼?!肮ぞ摺?>“宏”->“visual basic編輯器”或者按“Alt+F11” 即進(jìn)入代碼編寫區(qū)。點(diǎn)“模塊1”,在對(duì)應(yīng)宏名下面編寫代碼,并作相應(yīng)調(diào)試。
如果這個(gè)部分代碼不會(huì)寫,可以新建錄制一個(gè)宏,作相應(yīng)操作,結(jié)束宏,到相應(yīng)的代碼區(qū)去查看代碼,并復(fù)制代碼到目標(biāo)代碼區(qū)作出相應(yīng)更改調(diào)試。
在“1”表單的S1、T1、U1單元格里分別輸入起始組號(hào)、終止組號(hào)和共宗后綴名“確權(quán)”,按“Alt+F8”運(yùn)行程序,便可得到結(jié)果。
3.2 “按上面填充”實(shí)例
承包方名下一般都有好幾塊地塊,當(dāng)用excel合并單元格的功能把承包方打散時(shí),承包方的名字只顯示在他第一塊地塊編碼位置,需要把其他屬于他的地塊相應(yīng)位置填充為他的名字。為解決這個(gè)問(wèn)題,編寫了“按上面填充”小程序,代碼如下:
Sub 按上行填充()
Dim i As Integer, j As Integer, k As Integer
For i = 2 To Range("b" & Rows.Count).End(xlUp).Row
j = 0
If Cells(i, 1) <> "" Then? '求相同個(gè)數(shù)j
k = 2
k = i
End If
Cells(i, 1) = Cells(k, 1)
Next i
End Sub
3.3共宗人名匯聚和共有人承包比例、面積計(jì)算
對(duì)于共宗地塊有兩個(gè)問(wèn)題:(1)共宗是一個(gè)地塊編碼對(duì)應(yīng)多個(gè)承包方,怎么把多個(gè)承包方匯集到一個(gè)單元格里用“、”連接在一起。手工一個(gè)個(gè)去復(fù)制肯定費(fèi)時(shí)費(fèi)事還容易出錯(cuò);(2)如何批量的計(jì)算同一地塊共有人的承包比例。
解決思路:1、判斷本地塊號(hào)和下一地塊號(hào)是否相同;2、如果“否”則標(biāo)記第一個(gè)相同地塊號(hào)所在行號(hào)并對(duì)比下一個(gè);3、如果“是”,則進(jìn)行下面;4、進(jìn)行賦值:權(quán)利人=權(quán)利人+“、承包方”;5、標(biāo)記計(jì)數(shù)第i個(gè)承包方;6、匯總累加相同地塊號(hào)合同面積;7、進(jìn)行承包比例計(jì)算:
新建宏,在相應(yīng)的代碼區(qū)編寫代碼,并調(diào)試。
運(yùn)行:把地塊編碼復(fù)制到B列,合同面積復(fù)制到G列,權(quán)利人復(fù)制到K列,按“Alt+F8”運(yùn)行,得到了相應(yīng)結(jié)果。
3.4 批量打證
經(jīng)營(yíng)權(quán)證是一個(gè)包含有4個(gè)表單的excel文件,打印時(shí)要依次打開(kāi)承包方的經(jīng)營(yíng)權(quán)證打印文件,再依次打開(kāi)里面“NO1”、“NO2-NO3”、“NO4-NO5”、“NO6-NO7”這4個(gè)表單,并每打開(kāi)一個(gè)表單點(diǎn)一下打印按鈕,然后塞證打印。
傳統(tǒng)打印方法存在的問(wèn)題有:
(1)要想打的快一般是先多次點(diǎn)打印按鈕,發(fā)布多個(gè)打印的命令,然后塞證打印。如果打證員中途休息或干擾,就不知道打到哪一頁(yè),容易造成錯(cuò)打或者漏打。(2)存在有的承包方?jīng)]有地,承包面積0塊0畝,怎樣刪除這些不用打證的文件?(3)存在有的承包方有好多地,除了第3、4頁(yè)表單要打印,還要打印“附頁(yè)1-2”附頁(yè)“3-4”表單的有哪些文件呢?
可不可以設(shè)置程序按打證文件的順序一次發(fā)布多個(gè)打印文件,然后直接塞證打印呢?為解決這個(gè)問(wèn)題,提出了下面的思路:
根據(jù)這個(gè)流程圖,編寫相應(yīng)代碼,并調(diào)試出了“打證VB”這個(gè)批量打證的小程序。
4.分析
“單共宗匯總”、“按上面填充”、“共宗人名匯聚和共有人承包比例、分推面積計(jì)算”、“批量打證”等實(shí)例應(yīng)用前的正確率分別是98%、95%、75%、70%,消耗時(shí)間與表里的數(shù)量成正比,應(yīng)用實(shí)例后正確率達(dá)到100%,時(shí)間消耗分別約1.5分、0.5分、1分、2分(批量打證時(shí)間消耗指的是發(fā)布打證命令的時(shí)間)
可以看出,在應(yīng)用四個(gè)實(shí)例前人工處理這些表格消耗的時(shí)間與小組數(shù)、數(shù)據(jù)量的大小成正比,而且處理數(shù)據(jù)時(shí)精神得高度集中(第三和第四個(gè)實(shí)例尤其如此)才能保證正確率。應(yīng)用實(shí)例后,只要數(shù)據(jù)按程序設(shè)定的規(guī)則準(zhǔn)備好,處理好這些數(shù)據(jù)僅僅耗用一兩分鐘而已,正確率也有很大的保障,大大的提高了入庫(kù)的效率和正確率。
5.結(jié)論
本文通過(guò)“單共宗匯總”、“按上面填充”、“共宗人名匯聚”、“共有人承包比例計(jì)算”、“批量打證”這四個(gè)用Excel宏VBA二次開(kāi)發(fā)的實(shí)例,介紹了Excel宏編寫小程序的方法,并在實(shí)踐中應(yīng)用,實(shí)現(xiàn)準(zhǔn)確、高效、快捷的處理有規(guī)則的數(shù)據(jù),大大的提高了建庫(kù)的效率。Excel宏的開(kāi)放的二次開(kāi)發(fā)接口對(duì)從事建庫(kù)工作人員有很好的借鑒意義,對(duì)有效加快農(nóng)村土地承包經(jīng)營(yíng)權(quán)的推進(jìn)有積極的意義。
參考文獻(xiàn)
[1]張婉婉等.21天學(xué)通visual Basic[M].北京:電子工業(yè)出版社,2011.