




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、教你如何通過(guò)Excel VBA編寫(xiě)測(cè)量坐標(biāo)計(jì)算程序 發(fā)布日期:2013-01-11 來(lái)源:網(wǎng)絡(luò) 作者:未知 瀏覽次數(shù):1704摘 要:認(rèn)識(shí)VBA、理解VBA,并利用Office Excel VBA編寫(xiě)測(cè)量坐標(biāo)計(jì)算程序。關(guān)鍵詞:Excel VBA 程序 坐標(biāo) 編寫(xiě)了解:VBA是什么?簡(jiǎn)單的說(shuō)就是一種自動(dòng)化語(yǔ)言,它可以使常用的程序自動(dòng)化,可以創(chuàng)建自定義的解決方案。可以用Excel的宏語(yǔ)言來(lái)使Excel自動(dòng)化運(yùn)行等Microsoft
2、讓它開(kāi)發(fā)出來(lái)的應(yīng)用程序共享一種通用的自動(dòng)化語(yǔ)言Visual Basic For Application(VBA),可以認(rèn)為VBA是非常流行的應(yīng)用程序開(kāi)發(fā)語(yǔ)言Visual Basic的子集,事實(shí)上VBA是VB應(yīng)用程序的版本,盡管存在有些不同VBA和VB在結(jié)構(gòu)上仍然十分相似。如果你已經(jīng)了解VB會(huì)發(fā)現(xiàn)學(xué)習(xí)VBA非???。相應(yīng)的學(xué)完VBA會(huì)給學(xué)習(xí)VB打下堅(jiān)實(shí)的基礎(chǔ)。理由:選擇Excel VBA編程的理由是因?yàn)樗挠?jì)算功能非常強(qiáng)大,是現(xiàn)今任何編程計(jì)算器無(wú)法逾越的。它運(yùn)用范圍廣,計(jì)算速度快,計(jì)算精度高,合理化顯示等?;蛟S很多測(cè)量人員對(duì)Excel V
3、BA還有些陌生,主要是大家寄托于計(jì)算器、電腦、手機(jī)PDA等系列軟件使用。Excel VBA對(duì)于大多數(shù)測(cè)量人員而沒(méi)有系統(tǒng)學(xué)過(guò)計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì)的人群來(lái)講有一定含糊,不過(guò)只要有基本數(shù)學(xué)知識(shí)、測(cè)量常識(shí)和邏輯理解的人,都能通過(guò)Excel VBA編寫(xiě)設(shè)計(jì)出稱心如意的測(cè)量程序。目標(biāo):基于Excel VBA的測(cè)量坐標(biāo)計(jì)算程序的設(shè)計(jì)目標(biāo)是將繁瑣計(jì)算過(guò)程轉(zhuǎn)入到計(jì)算機(jī)中,利用程序語(yǔ)言的重復(fù)性原理,在計(jì)算機(jī)中可將坐標(biāo)計(jì)算得出更精確的結(jié)果,使坐標(biāo)計(jì)算更加可靠。最終目標(biāo)是讓用戶可以通過(guò)Excel VBA自行完成坐標(biāo)計(jì)算程序設(shè)計(jì)。認(rèn)識(shí):學(xué)習(xí)VBA到底需要什么基礎(chǔ)和了解些什么?學(xué)習(xí)V
4、BA需要認(rèn)識(shí)英文字母、一般的單詞(如:函數(shù)所用的過(guò)程)、數(shù)學(xué)基礎(chǔ)知識(shí)、測(cè)量常識(shí)、邏輯性思維即可。在VBA中需要了解VBA的過(guò)程、變量、屬性、方法、事件、語(yǔ)句等。Excel VBA程序可以分為“錄制宏、自定義函數(shù)”,由于錄制宏編寫(xiě)計(jì)算類程序它限制了計(jì)算涵式過(guò)程,而無(wú)法達(dá)到自定義數(shù)據(jù)直接運(yùn)算的目的,所以大家可以通過(guò)按鈕式點(diǎn)擊進(jìn)行自定義函數(shù)過(guò)程(還可以通過(guò)窗體定義過(guò)程)。基本常識(shí): 1、類型:常用類型分為Integer(整型)、Single (單精度型)、Double (雙精度型)、String(字符串型)、Variant(數(shù)字)、Variant
5、(字符)。 2、變量:Dim 變量名 As 數(shù)據(jù)類型。例:Dim A As Double定義變量除了可以使用Dim語(yǔ)句外,比較常的還有:static語(yǔ)句,Private語(yǔ)句,Public語(yǔ)句。 3、常量:Const 常量名 As 數(shù)據(jù)類型 常量的值。例:Const PI =3.1415926535898常量聲明后不可對(duì)它再進(jìn)行賦值。 4、If語(yǔ)句:If 邏輯表達(dá)式
6、0;Then If Q<0 Then 語(yǔ)句塊1 Q=-1Else
7、 Else 語(yǔ)句塊2
8、0; Q=1 End If End If 5、Do循環(huán)語(yǔ)句:Do Wihle 循環(huán)條件 Do
9、0;While Cells(j, 1) <> Empty 語(yǔ)句塊1 X = N + (Cells(j, 1) - D) * Cos(F) E
10、xit Do Y = E + (Cells(j, 1) - D) * Sin(F) 語(yǔ)句塊2
11、160; j = j + 1 Loop Loop 6、調(diào)用單元格數(shù)值:With Sheets("單元格名稱") Wit
12、h Sheets("坐標(biāo)計(jì)算") N = .Cells(行, 列) N = .Cells(3, 2) E = .Cells(行, 列)
13、160; E = .Cells(4, 2) D = .Cells(行, 列) D = .Cells(5, 2) F = .Cells(行, 列)
14、0; F = .Cells(6, 2) End With End With說(shuō)明:這里的.Cells(行, 列)表示調(diào)用Sheets("坐標(biāo)計(jì)算")單元格中指定數(shù)值。&
15、#160; 7、MsgBox事件語(yǔ)句:Private Sub Workbook_Open() Private Sub Workbook_Open() MsgBox "提示語(yǔ)句" MsgBox "歡迎使用直線坐標(biāo)計(jì)算程序!"End Sub
16、0; End Sub 主題:通過(guò)以上認(rèn)識(shí)相信大家對(duì)VBA編程稍有認(rèn)識(shí)與了解,現(xiàn)在將進(jìn)行測(cè)量坐標(biāo)計(jì)算程序設(shè)計(jì)。給大家講解的是“直線坐標(biāo)中樁計(jì)算”的程序如何編寫(xiě)與運(yùn)算。 思路:根據(jù)單元格輸入的已知數(shù)據(jù)并由With過(guò)程調(diào)用,建立Do循環(huán)計(jì)算模式自動(dòng)填充待求點(diǎn)單元格坐標(biāo)。 準(zhǔn)備:本表需將安全級(jí)別設(shè)置為“低”,否則運(yùn)行時(shí)點(diǎn)擊計(jì)算按鈕沒(méi)有
17、反映。 Office Excel 設(shè)置方法如下: Excel 2003版:工具>>>宏>>>安全性>>>選擇較低的安全級(jí)別>>>重新打開(kāi)文件即可運(yùn)行。 Excel 2007版:Office按鈕>>>Excel選項(xiàng)>>>信任中心>>>信任中心設(shè)置>>>宏設(shè)置>>>啟用所有宏。
18、60;版本:程序測(cè)試演示版本 Microsoft Office Excel 2003直線坐標(biāo)計(jì)算原理:如下圖所示,已知直線的起點(diǎn)坐標(biāo) 、起點(diǎn)切線方位角ao、直線長(zhǎng)度L。 直線的止點(diǎn)坐標(biāo)、止點(diǎn)方位角az計(jì)算如下: 已知計(jì)算數(shù)據(jù):輸入直線要素起點(diǎn)坐標(biāo)xo3378605.445起點(diǎn)坐標(biāo)yo453648.704起點(diǎn)樁號(hào)O7586.707計(jì)算方位角ao98.565562程序操作步驟:1、設(shè)置表格框架(可以根據(jù)自己的要求設(shè)計(jì)),圖示如下: 2、在菜單欄上面點(diǎn)擊右鍵彈出下拉式對(duì)話框選中“Visual Basic”。 3、調(diào)用后的Visu
19、al Basic菜單欄顯示如下。 4、插入命令按鈕(按鈕主要用于鼠標(biāo)點(diǎn)擊時(shí)觸發(fā)函數(shù)運(yùn)行)。 5、插入命令按鈕后樣式,在上面點(diǎn)擊右鍵命令按鈕 對(duì)象編輯輸入“坐標(biāo)計(jì)算”名稱(可以根據(jù)自己要求輸入)。同樣方法添加“數(shù)據(jù)清除”按鈕。 6、在“坐標(biāo)計(jì)算”按鈕上面點(diǎn)擊右鍵查看代碼,即可進(jìn)入代碼編輯區(qū)域。同樣方法編輯“數(shù)據(jù)清除”按鈕代碼。 7、代碼輸入?yún)^(qū)域,在藍(lán)色線條位置粘貼“VBA主要源碼”代碼然后點(diǎn)擊左上角Excel圖標(biāo)即可返回Excel電子表格界面。(這里還可以在VBAProject上面點(diǎn)擊右鍵插入模塊將代碼粘貼到模塊中通過(guò)路徑指引,但是在這
20、里就直接將代碼粘貼在按鈕內(nèi)部減少了添加模塊的繁瑣)。 VBA主要源碼: Option Explicit '顯式聲明模塊中的所有變量 Private Sub CommandButton1_Click()'按鈕下粘貼以下代碼:Dim j As Integer '
21、0;
22、0; Dim Ai, Bi, Ci, Di, Ei, Fi, Gi, Hi As Double ' &
23、#160; Dim N, E, D, X, Y, F As
24、60;Double '
25、0; 定義變量Const Pi = 3.14159265358979 ' &
26、#160; &
27、#160; With Sheets("坐標(biāo)計(jì)算") If Trim(.Cells(3, 2) = "" Then MsgBox "請(qǐng)輸入“起點(diǎn)坐標(biāo)X”!", vbInformation, "提示": Exit Sub '
28、;If Trim(.Cells(4, 2) = "" Then MsgBox "請(qǐng)輸入“起點(diǎn)坐標(biāo)Y”!", vbInformation, "提示": Exit Sub ' If Trim(.Cells(5, 2) = ""
29、 Then MsgBox "請(qǐng)輸入“起點(diǎn)樁號(hào)K”!", vbInformation, "提示": Exit Sub ' 檢測(cè)數(shù)據(jù) If Trim(.Cells(6, 2) = "" Then MsgBox "請(qǐng)輸入“起點(diǎn)方位角F”!"
30、, vbInformation, "提示": Exit Sub ' N = .Cells(3, 2) '
31、 E = .Cells(4, 2) '
32、 D = .Cells(5, 2) ' 調(diào)用已知數(shù)據(jù) F = .Cells(6, 2)
33、;' Gi = Int(.Cells(5, 2) + 10) / 10) * 10 '
34、160; Hi = .Cells(5, 2) + .Cells(7, 2) ' Fi = Abs(F) '
35、; Ai = Int(Fi) '
36、160; Bi = (Fi - Ai) * 100 ' &
37、#160; Bi = Int(Bi) '
38、0; Ci = (Fi - Ai) * 10000 - 100 * Bi ' 六十進(jìn)制轉(zhuǎn)換為十進(jìn)制 Di = Bi + Ci
39、/ 60 ' Ei = Ai + Di / 60 '
40、 If F < 0 Then ' &
41、#160; F = -Ei '
42、60; Else '
43、 F = Ei '
44、60; End If '
45、; F = F / 180 * Pi End With j = 9 Do While Cells(j, 1) <> Empty '
46、0; X = N + (Cells(j, 1) - D) * Cos(F) '
47、0; Y = E + (Cells(j, 1) - D) * Sin(F) ' 坐標(biāo)計(jì)算核心 Cells(j, 2) = Round(X, 3) '
48、160; Cells(j, 3) = Round(Y, 3) '
49、 j = j + 1 ' Loop
50、0;' End Sub '
51、 Private Sub CommandButton2_Click()'按鈕下粘貼以下代碼:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年下沉市場(chǎng)消費(fèi)金融趨勢(shì)分析及發(fā)展機(jī)遇報(bào)告
- 藥品管理相關(guān)管理制度
- 藥品銷售制度管理制度
- 藥店內(nèi)部各項(xiàng)管理制度
- 藥店收銀制度管理制度
- 莆田社保流程管理制度
- 設(shè)備事故定損管理制度
- 設(shè)備變更作業(yè)管理制度
- 設(shè)備定期維護(hù)管理制度
- 設(shè)備材料采購(gòu)管理制度
- 2025年北京市高考英語(yǔ)試卷真題(含答案解析)
- 國(guó)家開(kāi)放大學(xué)本科《商務(wù)英語(yǔ)4》一平臺(tái)機(jī)考真題及答案(第四套)
- 2024年湖北省中考地理生物試卷(含答案)
- 2024年甘肅省天水市中考生物·地理試題卷(含答案)
- GA 1016-2012槍支(彈藥)庫(kù)室風(fēng)險(xiǎn)等級(jí)劃分與安全防范要求
- 2022年小學(xué)六年級(jí)畢業(yè)監(jiān)測(cè)科學(xué)素養(yǎng)測(cè)試題試卷 (含答題卡)
- 行政賠償與行政補(bǔ)償課件
- 繼電器接觸器控制的基本線路.ppt
- 最新國(guó)家開(kāi)放大學(xué)電大《國(guó)際私法》機(jī)考3套真題題庫(kù)及答案2
- (完整版)《普通心理學(xué)-彭聃齡》知識(shí)要點(diǎn)
評(píng)論
0/150
提交評(píng)論