• 
    

    
    

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

      ?

      Excel vba在水準(zhǔn)路線測量外業(yè)中的應(yīng)用

      2017-03-27 13:29李茂曄劉群
      電腦知識與技術(shù) 2017年3期
      關(guān)鍵詞:水準(zhǔn)測量高效代碼

      李茂曄++劉群

      摘要:水準(zhǔn)路線外業(yè)測量工作,需要進(jìn)行大量的數(shù)據(jù)處理,該文利用excel vba代碼就可以使大量的計(jì)算工作瞬間完成,極大地提高了工作效率。

      關(guān)鍵詞:水準(zhǔn)測量;代碼;高效

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)03-0081-02

      Vba是微軟公司利用VB語言來控制Excel的操作,人們要想對Excel表格進(jìn)行操作,或者對Excel表格中的數(shù)據(jù)進(jìn)行運(yùn)算,就可以通過編寫vba代碼操作Excel,實(shí)現(xiàn)操作的自動化。水準(zhǔn)路線外業(yè)測量工作中,需要進(jìn)行大量的數(shù)據(jù)處理,且大都為重復(fù)計(jì)算,利用excelvba代碼就可以使大量的計(jì)算工作瞬間完成,極大地提高了工作效率。下面將以四等水準(zhǔn)路線為例說明excel vba的強(qiáng)大計(jì)算功能。

      1 四等水準(zhǔn)外業(yè)計(jì)算

      1.1 視距計(jì)算

      后視距:(9)=[(1)-(2)]×100 前視距:(10)=[(4)-(5)]×100

      視距差:(11)=(9)-(10) 視距差累計(jì):(12)=前一站(12)+本站(11)

      1.2 高差計(jì)算

      同一水準(zhǔn)尺紅、黑面中絲讀數(shù)的校核:

      (13)=K+(6)-(7)

      (14)=K+(3)-(8)

      黑面高差和紅面高差計(jì)算:

      黑面高差:(15)=(3)-(6)

      黑面高差:((16)=(8)-(7)

      黑紅面高差之差:(17)=(15)-(16)

      平均值計(jì)算:

      平均高差:=[(15)+(16)]/2

      1.3 每頁計(jì)算校核

      高差部分:

      計(jì)算每頁所有后視讀數(shù)總和與所有前視讀數(shù)總和之差,其值應(yīng)等于所有高差總和且等于平均高差總和的兩倍

      ∑[(3)+(8)]-∑[(6)+(7)]=∑[(15)+(16)]=2∑(18)

      視距部分:后視距總和與前視距總和之差應(yīng)等于末站視距差累計(jì)

      ∑(9)-∑(10)=末站(12)

      校核無誤后算出總視距

      總視距=∑(9)+∑(10)

      將外業(yè)測量數(shù)據(jù)填于測量手簿中,備注欄數(shù)據(jù)為施測時(shí)紅尺面的尺底常數(shù)。

      2 代碼編寫

      打開開發(fā)工具選項(xiàng)卡中的vasualbasic編輯器,插入模塊編寫如下,vba代碼:

      2.1 計(jì)算代碼編寫

      Sub水準(zhǔn)外業(yè)()

      Dim n%,rng1,rng2,rng3,rng4,rng5,rng6

      n=7

      Do

      Cells(n+2,3)=(Cells(n,3)-Cells(n+1,3))/10

      Cells(n+2,5)=(Cells(n,5)-Cells(n+1,5))/10

      Cells(n+3,3)=Cells(n+2,3)-Cells(n+2,5)

      Cells(n+3,5)=Cells(n-1,5)+Cells(n+3,3)

      If Abs(Cells(n+2,3)-Cells(n+2,5))>5 Or Abs(Cells(n-1,5)+Cells(n+3,3))>10 Then

      MsgBox("你超限了")

      Else

      Cells(n+3,3)=Cells(n+2,3)-Cells(n+2,5)

      Cells(n+3,5)=Cells(n-1,5)+Cells(n+3,3)

      EndIf

      If Abs(Cells(n,8)+Cells(n,11)-Cells(n,9))>3 Or Abs(Cells(n+1,8)+Cells(n+1,11)

      -Cells(n+1,9))>3 Then

      MsgBox("你超限了")

      Else

      Cells(n,10)=Cells(n,8)+Cells(n,11)-Cells(n,9)

      Cells(n+1,10)=Cells(n+1,8)+Cells(n+1,11)-Cells(n+1,9)

      EndIf

      Cells(n+2,8)=Cells(n,8)-Cells(n+1,8)

      Cells(n+2,9)=Cells(n,9)-Cells(n+1,9)

      If Abs(Cells(n+2,8)-(Cells(n+2,9)-(Cells(n,11)-Cells(n+1,11))))>5 Then

      MsgBox("你超限了")

      Else

      Cells(n+2,10)=Cells(n+2,8)-(Cells(n+2,9)-(Cells(n,11)-Cells(n+1,11)))

      Cells(n+3,10)=(Cells(n+2,8)-(Cells(n,11)-Cells(n+1,11))+Cells(n+2,9))/2

      End If

      rng1=rng1+Cells(n,8)+Cells(n,9)

      rng2=rng2+Cells(n+1,8)+Cells(n+1,9)

      rng3=rng3+Cells(n+2,8)+Cells(n+2,9)

      rng4=rng4+Cells(n+3,10)

      rng5=rng5+Cells(n+2,3)

      rng6=rng6+Cells(n+2,5)

      n=n+4

      Loop Until n>38

      If(rng1-rng2)=rng3 And rng3=2*rng4 Then

      [c39]="總視距="&(rng5+rng6)&"m"

      [h39]="總高差="& rng4 &"mm"

      Else

      MsgBox"計(jì)算錯誤"

      EndIf

      EndSub

      2.2 清除代碼編寫

      Sub清除()

      Dim i%

      For i=7 To 35 Step 4

      Range("c"&i).Range("a3:d4,f3:g4,h1:h4").Clear Contents

      Next

      [c39:f40,h39:j40].Clear Contents

      EndSub

      通過運(yùn)行以上計(jì)算程序可以快速地計(jì)算出所需數(shù)據(jù),如下表所示:

      使用vba代碼計(jì)算外業(yè)測量數(shù)據(jù)既快速又準(zhǔn)確,提高工作效率一倍以上,讓我們的測量任務(wù)更加輕松。

      猜你喜歡
      水準(zhǔn)測量高效代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      提高提問的有效性, 構(gòu)筑高效的語文課堂
      打造務(wù)實(shí)、創(chuàng)新、高效的語文課堂
      水準(zhǔn)測量在高層沉降觀測中的應(yīng)用思考
      SDCORS高程代替等級水準(zhǔn)測量的研究
      全站儀進(jìn)行水準(zhǔn)測量的可行性分析
      城市橋梁工程跨河水準(zhǔn)測量的方法
      达孜县| 香格里拉县| 义马市| 松桃| 荥阳市| 阿合奇县| 习水县| 丰县| 赤壁市| 辽阳县| 同仁县| 行唐县| 洪泽县| 福州市| 远安县| 隆昌县| 略阳县| 陕西省| 宾阳县| 霍山县| 石景山区| 安龙县| 通城县| 盐边县| 重庆市| 博罗县| 城口县| 高雄市| 电白县| 吉木萨尔县| 阳城县| 宁阳县| 拜泉县| 吴川市| 古田县| 嘉定区| 竹溪县| 武隆县| 广德县| 巴彦淖尔市| 偃师市|