" />
所屬欄目:計算機應用論文 發布日期:2011-06-09 07:59 熱度:
摘要:Excel是工作中經常使用的辦公軟件。在測量工作中,也有很大的應用,比如,計算一個角度的三角函數值、導線計算。Excel本身提供了強大的二次開發功能,本文將闡述用它來解決上面所提到的問題。
關鍵詞:Excel,VBA,工程測量,導線計算
0引言
Excel是大家很熟悉的辦公軟件,相信大家在工作中經常使用。在測量工作中,計算一個角度的三角函數值,而角度的單位是60進制的,計算起來比較困難,Excel本身無法直接計算60進制的角度的三角函數,將利用函數語言解決轉換問題,從而完成導線計算。
1實例DEG的函數
初識VBAIDE,首先,必須懂得一些簡單的VB編程常識。
打開Excel,按Alt+F11即進入VBAIDE,學過VB的人一看就知道那就是熟悉的VB界面。下面看看如何定義一個函數,然后利用它來解決60進制的角度的三角函數計算問題。在菜單上依次點擊[插入]----->[模塊],然后輸入如下代碼
PublicConstpi=3.14159265359
PublicFunctionDEG(nAsDouble)
DimAAsDouble,BAsDouble,CAsDouble,DAsDouble,EAsDouble,FAsDouble,GAsDouble,KAAsDouble
D=Abs(n)+0.000000000000001
F=Sgn(n)
A=Int(D)
B=Int((D-A)*100)
C=D-A-B/100
DEG=F*(A+B/60+C/0.36)*pi/180
EndFunction
這樣,就定義了一個名字叫DEG的函數,它的作用就是轉換60進制的角度為Excel認識的弧度。編輯完后按Alt+Q即返回Excel,再在某一單元格輸入=sin(deg(A1))(A1既可以是單元格的值,也可以是輸入的角度值),回車,就計算出了成果,可以用計算器檢驗一下是否正確。如果出現#NAME?那就要設置一下安全設置。依次點[工具]->[宏]->[安全性],在安全級選項卡上選擇“中”或者“低”,然后關閉后重新打開就可以了,以后只要是60進制的角度,就用它轉換,非常方便。
2導線計算
工程測量中,經常碰到導線的計算,如果手頭沒有平差計算程序就只有手工計算了,這時候可以編個小程序來計算,其實,這很簡單,只要編寫了一個附合導線計算程序,代碼很簡單,但很實用。下面是該程序的代碼:
Sub附合導線計算()
DimmAsInteger,nAsInteger,msAsDouble,ggAsDouble,shtAsObject,xxAsDouble,yyAsDouble,SAsDouble
Setsht=ThisWorkbook.ActiveSheet
DoWhilesht.Cells(m+3,4)<>""
m=m+1
Loop
Forn=3Tom+2
ms=DEG(ms)+DEG(sht.Cells(n,4))
ms=RAD(ms)
S=S+sht.Cells(n,3)
Next
ms=DEG(ms)
gg=RAD(DEG(sht.Cells(3,5))+ms-DEG(sht.Cells(3+m,5))-pi*m)
xx=0:yy=0
Forn=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.Cells(n-1,3)*Sin(DEG(sht.Cells(n,5))),"#####.####")
'坐標增量和
xx=xx+sht.Cells(n,6)
yy=yy+sht.Cells(n,7)
Next
xx=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,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+2
sht.Cells(n,8)=Format(xx/S*sht.Cells(n-1,3),"###.####")
sht.Cells(n,9)=Format(yy/S*sht.Cells(n-1,3),"###.####")
Next
Forn=4Tom+1
sht.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)
Next
Columns("F:K").Select
Selection.NumberFormatLocal="0.000_"
EndSub
PublicFunctionRAD(NuAsDouble)AsDouble
DimAAsDouble,BAsDouble,CAsDouble,DAsDouble,EAsDouble,FAsDouble,GAsDouble,pAsDouble
D=Abs(Nu)
F=Sgn(Nu)
p=180#/pi
G=p*60#
A=Int(D*p)
B=Int((D-A/p)*G)
W=B
C=(D-A/p-B/G)*20.62648062
RAD=(C+A+B/100)*F
EndFunction
值得注意的是,前面提到的DEG函數別忘記加進去。
如果自己定義一個名字叫“計算”的按鈕,指定此工具的宏為“單一附合導線計算”,那么,只要按上面的格式輸入原始數據,點“計算”就可以得到計算結果了。所有的過程都是自動的,無須再手工填寫,是不是很方便?
當然,也可以利用Excel把工作表中點的坐標值(二維或者三維)在CAD中展繪出來,同樣可以再加個工具按鈕。這里就不在一一介紹。
Excel的功能是非常強大的,利用他可完成許多測量上的計算,而且方法要方便的多。
文章標題:Excel VBA在工程測量上的應用
轉載請注明來自:http://www.56st48f.cn/fblw/dianxin/yingyong/9332.html
攝影藝術領域AHCI期刊推薦《Phot...關注:106
Nature旗下多學科子刊Nature Com...關注:152
中小學教師值得了解,這些教育學...關注:47
2025年寫管理學論文可以用的19個...關注:192
測繪領域科技核心期刊選擇 輕松拿...關注:64
及時開論文檢索證明很重要關注:52
中國水產科學期刊是核心期刊嗎關注:54
國際出書需要了解的問題解答關注:58
合著出書能否評職稱?關注:48
電信學有哪些可投稿的SCI期刊,值...關注:66
通信工程行業論文選題關注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關注:121
評職稱發論文好還是出書好關注:68
復印報刊資料重要轉載來源期刊(...關注:51
英文期刊審稿常見的論文狀態及其...關注:69
電子信息論文范文
智能科學技術論文 廣播電視論文 光電技術論文 計算機信息管理論文 計算機網絡論文 計算機應用論文 通信論文 信息安全論文 微電子應用論文 電子技術論文 生物醫學工程論文 軟件開發論文
SCI期刊分析
copyright © www.56st48f.cn, All Rights Reserved
搜論文知識網 冀ICP備15021333號-3