資源描述:
《excel vba在工程測量上的應(yīng)用論文》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、ExcelVBA在工程測量上的應(yīng)用論文摘要:Excel是大家很熟悉的辦公軟件,相信大家在工作中經(jīng)常使用吧。在測量工作中,你是否感覺到有很不方便的時候?比如,計算一個角度的三角函數(shù)值,而角度的單位是60進制的,此時,你一定感到很無奈,因為.freelAAsDouble,BAsDouble,CAsDouble,DAsDouble,EAsDouble,FAsDouble,GAsDouble,KAAsDoubleD=Abs(n)+0.000000000000001F=Sgn(n)A=Int(D)B=Int((D-A)*100)C=D-A-B/100DEG=F
2、*(A+B/60+C/0.36)*pi/180EndFunction這樣,就定義了一個名字叫DEG的函數(shù),它的作用就是轉(zhuǎn)換60進制的角度為Excel認識的弧度。編輯完后按Alt+Q即返回Excel,再在某一單元格輸入=sin(deg(A1))(A1既可以是單元格的值,也可以是輸入的角度值),回車,哈哈,怎么樣?結(jié)果出來了吧?你可以用計算器檢驗一下是否正確。如果出現(xiàn)#NAME?那就要設(shè)置一下安全設(shè)置。依次點工具-宏-安全性,在安全級選項卡上選擇“中”或者“低”,然后關(guān)閉后重新打開就可以了,以后只要是60進制的角度,就用它轉(zhuǎn)換,非常方便哦。工程測量中,經(jīng)
3、常碰到導(dǎo)線的計算,如果手頭沒有平差計算程序就只有手工計算了,這時候你曾經(jīng)想過編個小程序來計算?其實,這很簡單,筆者在宛坪(上海至武威)高速公路上做測量監(jiān)理,因為有大量的導(dǎo)線需要復(fù)核,故編寫了一個附合導(dǎo)線計算程序,代碼很簡單,但很實用。下面是該程序的代碼:Sub附合導(dǎo)線計算()DimmAsInteger,nAsInteger,msAsDouble,ggAsDouble,.freel+3,4)""m=m+1LoopForn=3Tom+2ms=DEG(ms)+DEG(sht.Cells(n,4))ms=RAD(ms)S=S+sht.Cells(n,3)Ne
4、xtms=DEG(ms)gg=RAD(DEG(sht.Cells(3,5))+ms-DEG(sht.Cells(3+m,5))-pi*m)xx=0:yy=0Forn=4Tom+2'方位角sht.Cells(n,5)=RAD(DEG(sht.Cells(n-1,5))+DEG(sht.Cells(n-1,4))-pi-DEG(gg)/m)'坐標增量sht.Cells(n,6)=Format(sht.Cells(n-1,3)*Cos(DEG(sht.Cells(n,5))),"#####.####")sht.Cells(n,7)=Format(sht.C
5、ells(n-1,3)*Sin(DEG(sht.Cells(n,5))),"#####.####")'坐標增量和xx=xx+sht.Cells(n,6)yy=yy+sht.Cells(n,7)Nextxx=xx+sht.Cells(3,10)-sht.Cells(m+2,10)yy=yy+sht.Cells(3,11)-sht.Cells(m+2,11)sht.Cells(m+4,5)="△α="Format(gg,"###.######")sht.Cells(m+4,6)="△X="Format(xx,"###.###")sht.Cells(m+4
6、,7)="△Y="Format(yy,"###.###")sht.Cells(m+4,3)="∑S="Format(S,"###.###")sht.Cells(m+4,9)="△S="Format(Sqr(xx*xx+yy*yy),"###.###")sht.Cells(m+4,10)="相對精度1/"Format(S/Sqr(xx*xx+yy*yy),"######")Forn=4Tom+2sht.Cells(n,8)=Format(xx/S*sht.Cells(n-1,3),"###.####")sht.Cells(n,9)=Format(yy/
7、S*sht.Cells(n-1,3),"###.####")NextForn=4Tom+1sht.Cells(n,10)=sht.Cells(n-1,10)+sht.Cells(n,6)-sht.Cells(n,8)sht.Cells(n,11)=sht.Cells(n-1,11)+sht.Cells(n,7)-sht.Cells(n,9)NextColumns("F:K").SelectSelection.NumberFormatLocal="0.000_"EndSubPublicFunctionRAD(NuAsDouble)AsDoubleDim
8、AAsDouble,BAsDouble,CAsDouble,DAsDouble,EAsDouble,FAsD