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

?

Excel vba在水準路線測量外業(yè)中的應用

2017-03-27 13:29李茂曄劉群
電腦知識與技術 2017年3期
關鍵詞:水準測量高效代碼

李茂曄++劉群

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

關鍵詞:水準測量;代碼;高效

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

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

1 四等水準外業(yè)計算

1.1 視距計算

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

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

1.2 高差計算

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

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

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

黑面高差和紅面高差計算:

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

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

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

平均值計算:

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

1.3 每頁計算校核

高差部分:

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

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

視距部分:后視距總和與前視距總和之差應等于末站視距差累計

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

校核無誤后算出總視距

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

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

2 代碼編寫

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

2.1 計算代碼編寫

Sub水準外業(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"計算錯誤"

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

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

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

猜你喜歡
水準測量高效代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
創(chuàng)世代碼
提高提問的有效性, 構筑高效的語文課堂
打造務實、創(chuàng)新、高效的語文課堂
水準測量在高層沉降觀測中的應用思考
SDCORS高程代替等級水準測量的研究
全站儀進行水準測量的可行性分析
城市橋梁工程跨河水準測量的方法