网站首页  词典首页

请输入您要查询的论文:

 

标题 Excel vba在水准路线测量外业中的应用
范文

    李茂晔++刘群

    

    摘要:水准路线外业测量工作,需要进行大量的数据处理,该文利用excel vba代码就可以使大量的计算工作瞬间完成,极大地提高了工作效率。

    关键词:水准测量;代码;高效

    中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)03-0081-02

    Vba是微软公司利用VB语言来控制Excel的操作,人们要想对Excel表格进行操作,或者对Excel表格中的数据进行运算,就可以通过编写vba代码操作Excel,实现操作的自动化。水准路线外业测量工作中,需要进行大量的数据处理,且大都为重复计算,利用excelvba代码就可以使大量的计算工作瞬间完成,极大地提高了工作效率。下面将以四等水准路线为例说明excel vba的强大计算功能。

    1 四等水准外业计算

    1.1 视距计算

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

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

    1.2 高差计算

    同一水准尺红、黑面中丝读数的校核:

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

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

    黑面高差和红面高差计算:

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

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

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

    平均值计算:

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

    1.3 每页计算校核

    高差部分:

    計算每页所有后视读数总和与所有前视读数总和之差,其值应等于所有高差总和且等于平均高差总和的两倍

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

    视距部分:后视距总和与前视距总和之差应等于末站视距差累计

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

    校核无误后算出总视距

    总视距=∑(9)+∑(10)

    将外业测量数据填于测量手簿中,备注栏数据为施测时红尺面的尺底常数。

    2 代码编写

    打开开发工具选项卡中的vasualbasic编辑器,插入模块编写如下,vba代码:

    2.1 计算代码编写

    Sub水准外业()

    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

    通过运行以上计算程序可以快速地计算出所需数据,如下表所示:

    

    使用vba代码计算外业测量数据既快速又准确,提高工作效率一倍以上,让我们的测量任务更加轻松。

    

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 1:46:07