版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
ExcelVBA在工程測量上的應(yīng)用Excel是大家很熟悉的辦公軟件,相信大家在工作中經(jīng)常使用吧。在測量工作中,你是否感覺到有很不方便的時(shí)候?比如,計(jì)算一個(gè)角度的三角函數(shù)值,而角度的單位是60進(jìn)制的,此時(shí),你一定感到很無奈,因?yàn)椋珽xcel本身無法直接計(jì)算60進(jìn)制的角度的三角函數(shù)!還有,如果你的工作表中有了點(diǎn)坐標(biāo)值(二維或者三維),要在CAD中展繪出來,怎樣才能又快又直接?不然,就只有拐彎摸角了,很痛苦?。∑鋵?shí),只要對Excel進(jìn)行一些挖掘,就可以發(fā)現(xiàn)Excel的功能我們還沒有好好的利用呢。Excel本身提供了強(qiáng)大的二次開發(fā)功能,只要我們仔細(xì)的研究,沒有什么能難倒我們的。下面,好好筆者將帶你走近Excel,認(rèn)識它的強(qiáng)大的二次開發(fā)環(huán)境VBAIDE,用它來解決上面所提到的問題,就非常容易了。初識VBAIDE首先,你必須懂得一些簡單的VB編程常識。如果不懂就只有通過其他的途徑去學(xué)習(xí)了。但用不著深入的研究,只要靜下心來,幾個(gè)小時(shí)就可以了。打開Excel,按Alt+F11即進(jìn)入VBAIDE,學(xué)過VB的人一看就知道那就是熟悉的VB界面。下面看看如何定義一個(gè)函數(shù),然后利用它來解決60進(jìn)制的角度的三角函數(shù)計(jì)算問題。在菜單上依次點(diǎn)擊[插入]->[模塊],然后輸入如下代碼PublicFunctionDEG(nAsDouble)DimAAsDouble,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*(A+B/60+C/0.36)*pi/180EndFunction這樣,就定義了一個(gè)名字叫DEG的函數(shù),它的作用就是轉(zhuǎn)換60進(jìn)制的角度為Excel認(rèn)識的弧度。編輯完后按Alt+Q即返回Excel,再在某一單元格輸入=sin(deg(A1))(A1既可以是單元格的值,也可以是輸入的角度值),回車,哈哈,怎么樣?結(jié)果出來了吧?你可以用計(jì)算器檢驗(yàn)一下是否正確。如果出現(xiàn)#NAME?那就要設(shè)置一下安全設(shè)置。依次點(diǎn)[工具]->[宏]->[安全性],在安全級選項(xiàng)卡上選擇“中”或者“低”,然后關(guān)閉后重新打開就可以了,以后只要是60進(jìn)制的角度,就用它轉(zhuǎn)換,非常方便哦。工程測量中,經(jīng)常碰到導(dǎo)線的計(jì)算,如果手頭沒有平差計(jì)算程序就只有手工計(jì)算了,這時(shí)候你曾經(jīng)想過編個(gè)小程序來計(jì)算?其實(shí),這很簡單,筆者在宛坪(上海至武威)高速公路上做測量監(jiān)理,因?yàn)橛写罅康膶?dǎo)線需要復(fù)核,故編寫了一個(gè)附合導(dǎo)線計(jì)算程序,代碼很簡單,但很實(shí)用。下面是該程序的代碼:鼠Su功b商附合導(dǎo)線計(jì)鏡算庭(索)螞Dimm弱AsInt通eger,低nAsI液nteger懶,msA穿sDoub充le,gg奏AsDo烈uble,飄shtAs巡Objec尸t,xx版AsDou怕ble,y氧yAsD煉ouble,堂SAs尊Double問Setsh瞎t=Th劍isWork引book.A弦ctiveS舒heet妖DoWhi驚lesht花.Cells拐(m+3拋,4)<銜>""烏m=m齡+1Loop英Forn亮=3To嶺m+2粱ms=D袖EG(ms)愁+DEG盯(sht.C刺ells(n悅,4))爪ms=R稠AD(ms)略S=S泥+sht.怖Cells(繳n,3)Next拉ms=D世EG(ms)檢gg=R朱AD(DEG菊(sht.C妹ells(3哲,5))孫+ms-擱DEG(s磚ht.Cel足ls(3+每m,5)阿)-pi謠*m)泛xx=0她:yy=辯0交Forn過=4To珠m+2'方位角粱sht.Ce吧lls(n,貿(mào)5)=紋RAD(DE插G(sht.顛Cells(研n-1,名5))+閥DEG(s喬ht.Cel致ls(n-練1,4)莖)-pi啊-DEG憐(gg)/耍m)'坐標(biāo)增量隨sht.Ce推lls(n,蠅6)=薯Format餡(sht.C屋ells(n蔑-1,兄3)*C夸os(DEG淘(sht.C粱ells(n鏈,5)))秩,"###工##.###疊#")涌sht.Ce恩lls(n,鹿7)=緊Format寨(sht.C們ells(n窄-1,暖3)*S獅in(DEG銜(sht.C浪ells(n吳,5)))杠,"###間##.###衫#")'坐標(biāo)增量和啟xx=x業(yè)x+sh拾t.Cell剖s(n,6舍)停yy=y畝y+sh攔t.Cell醉s(n,7弟)Next懸xx=x適x+sh晃t.Cell州s(3,1碑0)-s錘ht.Cel話ls(m+瘡2,10庫)醋yy=y過y+sh劑t.Cell衣s(3,1致1)-s岔ht.Cel葉ls(m+鐘2,11姨)盼sht.Ce脅lls(m粥+4,5前)=丘"企△估α哈="&F鬧ormat(吊gg,"#僵##.###犁###")或sht.Ce障lls(m遇+4,6蹦)=白"紅△迫X="&閥Format題(xx,"囑###.##殃#")于sht.Ce喬lls(m煌+4,7滿)=緞"使△尾Y="&傘Format月(yy,"車###.##它#")半sht.Ce逮lls(m害+4,3葬)=鏟"傷∑水S="&嗓Format捐(S,"#現(xiàn)##.###秤")委sht.Ce仆lls(m躬+4,9智)=喬"成△妖S="&邀Format均(Sqr(x梁x*xx芒+yy炮*yy),失"###.極###")冷sht.Ce敲lls(m全+4,1儉0)=橫"疼相對精妻度殘1/"&規(guī)Forma適t(S/聰Sqr(xx球*xx做+yy*輸yy),失"#####紹#")桃Forn足=4To叉m+2強(qiáng)sht.Ce女lls(n,原8)=嗽Format胳(xx/航S*sh旨t.Cell站s(n-箱1,3),踐"###.才####")秤sht.Ce銳lls(n,澡9)=辦Format謝(yy/右S*sh喚t.Cell勝s(n-濁1,3),營"###.黑####")Next闖Forn躬=4To遭m+1挖sht.Ce哄lls(n,損10)=毛sht.C毛ells(n絕-1,灰10)+藍(lán)sht.Ce僑lls(n,剩6)-售sht.Ce跌lls(n,缸8)藍(lán)sht.Ce泰lls(n,覆11)=衫sht.C趣ells(n竊-1,倦11)+靈sht.Ce溪lls(n,廳7)-勿sht.Ce仔l(wèi)ls(n,梯9)Next狗Co葛lumns(返"F:K")黎.Selec型t折Se遼lectio墻n.Numb闊erForm掏atLoca柱l="0枕.000_鑼"唱EndSu件b潮Public同F(xiàn)unct爹ionRA臣D(NuA端sDoub秋le)As潤Doubl呈e存DimA營AsDou兼ble,B傭AsDo社uble,沖CAsD建ouble,亮DAs曠Double豬,EAs所Doubl冠e,FA唐sDoub虧le,G倘AsDou圈ble,p棒AsDo豪uble及D=Ab糟s(Nu)邁F=Sg佛n(Nu)軌p=18掀0#/p模i改G=p境*60#心A=In舞t(D*快p)蹦B=In完t((D-杜A/p經(jīng))*G)W=B至C=(D街-A/槍p-B你/G)域*20.6躁264806枝2粘RAD=雪(C+A碗+B/決100)挪*F撐EndFu測nction犬值得注意的是碑,輝前睜面提到奪的疼D躁E盯G隙函數(shù)別忘記加京進(jìn)去。咽如果自己定義男一個(gè)名字森叫?!拔饔?jì)客算沈”竹的殊按鈕掛,指定此工具牌的宏舊為慈“國單一附合導(dǎo)線彼計(jì)刻算擦”月,那么,只要稻按下面的格式集輸入原始數(shù)據(jù)睛(斜體是輸入眾的)景,細(xì)點(diǎn)毅“佛計(jì)箭算米”再就可以得到計(jì)汪算結(jié)果了。所稅有的過程都是屑自動(dòng)的,無須枯再釘手工填寫,述是不是很代方便品?霜下面我們就來斬解決上面提到缺的怪與訂CA狹D鐮的連接和通訊傻問題。載進(jìn)警入巷VBAID猴E擦,黃按晝[煙工玩具百]->視[慈引籃用菠]偵,搞找到欣可使用的引用易,繳在崇“甲AutoCA反D200集0渣類型傻庫近”點(diǎn)的左邊打鉤,如點(diǎn)確定就行了程。錫在模塊中輸入權(quán)以下代碼:武Global崇Sheet券AsOb腥ject,地acadmt否extAs上acadm階text,超fontHi侍ghtAs牙Doubl輩e筆Globa剃lxlBo保okAs濃Excel虛.Workb鉛ook濤Global傷p0(2)頑AsDo壤uble,頑p1(2)荒AsDou餓ble,p銜2(2)A掉sDoub浮le畏Global魯acadA采ppAs幻AcadAp棄plicat朝ion衣Global唇acadD秤ocAs堵AcadDo完cument段Global叨acadP撈ointA夸sacad緣Point亡Globa聰lnumb啦erAs懲Intege躍r扶Publi胡cType許pt嫂nAs紙Intege遇r鏈pt(2)莫AsDo休uble強(qiáng)Global狼pt()裁Aspt抬Globa述ltext鉛1AsA歐cadTex逗t勤Glo波balCA有DAsO怎bject蓄Glo蝶balp(誘2)As丟Double誤,iAs鋪Integ貫er,j賽AsInt鼠eger塌闊Global逗hAs癥Intege批r,lA禁sInte沖ger與Public既Funct奧ionGe鋒t_ACAD饑(DwtA在sStri脆ng)As急Boole根an乒DimY蝦ERAs護(hù)Intege說r濃On捐Error其Resum爬eNext躬Se敵tacad械A(chǔ)pp=款GetObj蹦ect(,聯(lián)"AutoC餃AD.App妖licati偉on")揪If致ErrT趟hen隱橡Err.逢Clear舅考Set旦acadAp彈p=Cr庫eateOb須ject("磨AutoCA添D.Appl貼icatio葵n")甘遮IfE蠢rrThe蛛n嘩桑沈MsgBox登Err.D咽escrip蜓tion惜頓舊OnErr環(huán)orGoT忘o0志楚蝦Get_AC施AD=F精alse戚耐桌ExitF侄unctio蔥n些脊End屑If體En扔dIf腰On飽Error劫GoTo閘0耍Setac脾adDoc穿=acad維App.Ac搭tiveDo農(nóng)cument畏ac豎adApp.踢Visibl響e=Tr惜ue勞Ge吊t_ACAD沿=Tru輕e源Di扮mtype床FaceA蛋sStri起ng皆Di炒mBold降A(chǔ)sBo禮olean墳Di倆mItal謙icAs樸Boolea侍n嗽Di認(rèn)mchar申SetAs衫Long辯Di負(fù)mPitc繳handFa炒milyA興sLong考ac鬼adDoc.保Active考TextSt看yle.Ge伴tFont杠typeFa燥ce,Bo芒ld,It視alic,訴charSe昨t,Pit底chandF浪amily投acadDo神c.Acti誕veText周Style.津SetFon你t別"臭宋梢體朵",Bol啟d,Ita羅lic,c趁harSet森,Pitc重handFa乞mily郵EndFu淘nction番Sub徒顯示對話框葡(劑)千Form1.稅Show(屈0)蟻EndSu系b河Public姑Funct月ionDr黎aw_Poi歌nt(Poi盤nt()A僑sDoub具le)As礙acadP邁oint望Se錘tDraw中_Point扭=aca欺dDoc.M箱odelSp短ace.Ad罩dPoint俯(Point座)漁Dr斤aw_Poi培nt.Upd鹽ate市EndFu照nction婚Public薄SubS本et_lay池er(sA侮sStri鴿ng)坐Di糞mlaye屯rObjA牌sAcad嘆Layer筒Se式tlaye委rObj=艱acadD倦oc.Lay舉ers.Ad遣d(s)今ac宰adDoc.燕Active度Layer愛=laye訊rObj葬EndSu好b健再按以下模式皇做個(gè)對話框:犧窗體的釋名字就南叫纏“恰Form1亞”洗雙蜂擊春“暢展點(diǎn)楚”威按鈕,輸入以設(shè)下代碼:婦Dimp0純(2)As作Doubl竿e,p1(妻2)As胞Double壓,p2(2惹)AsD刊ouble那DimT1鑒AsDo至uble,慌T2As謊Double橋,T3A男sDoub準(zhǔn)le,T4克AsDo盞uble磁Public依neAs悄Integ千er,sp壺AsSi靜ngle,退czAs狼Single勉CallG額et_ACA姐D("")叢Dimtx杠tAsA征cadTex綿t恰Dimla洪AsAc訪adLaye胡r躲ForEa蛇chLay克erIn碌acadDo棄c.Mode擺lSpaceNext午CallS財(cái)et_lay器er("zd原h(huán)")噸SetSh盯eet=鈔ThisWo假rkbook艙.Activ垮e(cuò)Sheet如Dimi喬AsInt藏eger臣DoWhi先leShe沫et.Cel摸ls(i+銷1,3)菜<>""畫OrSh渣eet.Ce恐lls(i薯+1,1魂)<>"圾"鞏IfShe授et.Cel宜ls(i+黃1,3)婦=""坦OrShe替et.Cel摔ls(i+子1,4)恩=""妨ThenG繪oToII糟WithS錦heet霜p1(0)列=.Cel系ls(i+殖1,3)奇.Value職p1(1)淚=.Cel蹲ls(i+靈1,4)記.Value也p1(2)腹=.Cel中l(wèi)s(i+野1,5)稠.Value粒EndWi田th務(wù)p(0)=趕p1(0)罩p(1)=縫p1(1)抬CallS省et_lay絲er("ZD擔(dān)H")獅CallD踏raw_Po袍int(p1哈)屬fontH梳ight=嫂TextB全ox5.Va略lue爪IfCel詢ls(i+笨1,2)爛=""譽(yù)ThenG壤oTooo皮Settx桑t=ac鉗adDoc.闖ModelS駕pace.A獵ddText形(Cells有(i+1蔑,2),濾p,fon蠶tHight湖)五txt.Co記lor=贈(zèng)acMage元ntaoo:碼IfCel拾l(fā)s(i+俊1,5)毯=""鋤ThenG剝oToII音Set_la盛yer("炭GCD")糧p(1)=軍p1(1)個(gè)-fon水tHight摟Settx辰t=ac密a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)描述和功能
- 海底世界美術(shù)課程設(shè)計(jì)
- 中國雅士板行業(yè)市場運(yùn)營模式及未來發(fā)展動(dòng)向預(yù)測研究報(bào)告(2024-2030版)
- 中國透水磚市場深度調(diào)查研究報(bào)告(2024-2030版)
- 2024年中國法式鴨胸市場調(diào)查研究報(bào)告
- 中國蒸汽機(jī)器人行業(yè)市場深度分析及發(fā)展前景與投資機(jī)會(huì)研究報(bào)告(2024-2030版)
- 中國自攻螺釘行業(yè)運(yùn)行形勢與投競爭策略分析研究報(bào)告(2024-2030版)
- 中國紡紗紙錐行業(yè)應(yīng)用潛力與投資盈利預(yù)測研究報(bào)告(2024-2030版)
- 中國磷酸三鈉行業(yè)發(fā)展趨勢及投資動(dòng)態(tài)預(yù)測研究報(bào)告(2024-2030版)
- 中國硅氮烷產(chǎn)業(yè)前景動(dòng)態(tài)及需求規(guī)模預(yù)測研究報(bào)告(2024-2030版)
- 燃?xì)夤芫W(wǎng)運(yùn)行工施工環(huán)境保護(hù)詳細(xì)措施培訓(xùn)
- 神經(jīng)系統(tǒng)的分級調(diào)節(jié)課后鞏固練習(xí) 高二下學(xué)期生物人教版選擇性必修1
- 衛(wèi)生院請休假管理制度
- 靶向治療的題目
- 2024年化學(xué)檢驗(yàn)工(中級工)理論備考試題庫及答案(匯總)
- 新版檢驗(yàn)檢測機(jī)構(gòu)管理評審報(bào)告
- 新教材人教版高中英語選擇性必修第一冊全冊教學(xué)設(shè)計(jì)
- 《小學(xué)生的自我保護(hù)》課件
- 古代辭章領(lǐng)略古代辭章的風(fēng)華與韻味
- 六年級道德與法治下冊-3-學(xué)會(huì)反思教案
- 崗位風(fēng)險(xiǎn)排查管理制度
評論
0/150
提交評論