首页 > 论坛 > 工程测量测绘
  • Excel 测量程序设计之一
    1#
    • Lily0927
    • 2007-09-18
    不使用VBA,同样解决工程测量中的计算问题
      Excel 测量程序设计之一

      Excel 内在的强大计算功能和单元格编辑功能,是现今任何编程计算器不能比拟的。运用范围广,计算速度快,精度高,加之人性化显示格式决定了它在数值计算中的优势。为什么暂时不被多数测量人看好?问题在于大家对Excel 主要依托于PC 、笔记本电脑为硬件支撑,携带不方便和电能消耗问题的担忧,没有花大力气向这方面攻关。但随着PDA、PPC(智能手机)性能日益完善、运算速度日益加快、价格日益被普通人群所接受,硬件和能耗已经不是主要问题了。Excel 最大的特点在于只需要通过数据线就能实现PC、PPC、PDA的数据交换,因此,PPC、PDA最终将取代编程计算器。
      说到Excel 大家必然联系用VB或VBA 来解决测量计算问题,这对于大多数搞测量而没有系统学过计算机高级语言程序设计的人群来讲,有一定困难,而Excel 本身完全能解决测量特别是工程测量实践中的数值计算问题,为什么不放弃VBA代码而直接用公式呢?
      利用WIN、EXCEL平台和习惯了的窗口,只要有基本数学知识和测量常识的人,都能直接在Excel 表格中设计出称心如意的测量程序。
      一、设计出简洁、明了、美观大方又符合规定要求的计算表格。
      新建一张工作表,对工作表的各种格式进行人性化设计,只要能达到解决实际问题的结果,你想怎样设计就怎样设计,这比用VBA 代码编辑的定型表格更个性和灵活。具体的讲,表格格式设计主要包括列标、行标,文字提示,行、列单元格高、宽、字体大小,属性、单元格格式设计,边框设计等。通过你的劳动,你可以在实践中不断创新出漂亮的工作表来。
      二、数据的录入。与VBA 不同,直接使用Excel 能在一张工作表上实现输入、计算和输出。因此,你可以为参加计算的原始参数指定在一个相对集中区域供输入,这些单元格永远是能被击活且能操作的。而其他大多数单元格在编辑完成后将被锁定保护,以防误操作破坏整个表格。有了数据录入的区域,接下来就要在其他单元格中设计公式了,可以的,但我还是要告诉你,先不要着急,请在菜单栏点击工具,在下拉菜单中点选项,在弹出的选项卡上选常规项,最后勾选R1C1引用样式。你不要问我这是为什么,当你能够设计出一两个满意的程序时,你自然会知道R1C1引用的优越。
      三、来一个简单的程序。以一条圆曲线为例,假定圆曲起点里程为02+262.00,终点里程为02+366.00,两端接直线,又:逐桩距为 5。曲线起点之切线方位角为 A,圆心坐标X.O,Y.O,半径为R ,转角为+.
    设计:第二列为桩号列、第三列为X坐标列、第四列为Y坐标列,从第四行起计算并显示桩号和坐标。
      1、桩号列设计.R4C2(注:第一个桩号)= 2262;(直圆点)
      R5C2 (注:第二个桩号,以下不再注释)=INT((R[-1]C+5)/5)*5
      简单讲解 =INT((R[-1]C+5)/5)*5 的含义。选择R5C2单元格,在公式编辑栏左开始输入=INT((R[-1]C+5)/5)*5,等号是必须和重要的,INT()为取整函数,公式运算的结果为“2265”,也就是从计算起点开始取大于2262的逐桩距 5 的倍数的桩号,以后的逐桩号必定是能被5整除的。
      R6C2 =IF(OR(R[-1]C=“ ”,R[-1]C+5)>=2366),”“, R[-1]+5)
      公式中 IF OR 为逻辑函数;IF 中文理解是如果的意思;OR 则表示对参数的逻辑判断,上面公式的完全中文表述:如果本列上一个单元格(桩号)为“空”(没有数值或字符)或本列上一个单元格+5大于2366,则把“空”赋给结果;否则结果为本列上一个单元格+5 运算结果 R6C2 = 2270。
      R7C2 =同上(复制公式粘贴或格式刷复制)
      . …..
      2、纵坐标X设计 R4C3 (注:直圆点X)
      R4C3=IF(RC[-1]=”“, “ “,X.O+R*COS(RADIANS(A)+PI()/2+(RC[-1]-2262)/R)
      R5C3= (公式同上,可复制)
      …….
      3、横坐标Y设计 R4C4 (注:直圆点Y)
      R4C4=IF(RC[-2]=””,””, Y.O+R*SIN(RADIANS(A)+PI()/2+(R[-2]-226)/R)
      R5C4= (公式同上,可复制)
      ……..
      桩号列,X列、Y列你都可以用格式刷快速复制同一公式,要多少,鼠标刷多少,多简单。由于设计了桩号大于圆直点桩号计算终止的语句,不论你在列中刷了多少单元格,程序都将在大于等于圆直点桩号处终止。当然,你在基本掌握了公式输入技巧后,还可以在桩号栏前面增加一列属性列,用于显示点的位置。如桩号小于直圆点,点位于直线段;桩号>直圆<圆直,点在曲线上,桩号>圆直,点又回到直线上.你可大胆试一试.
  • 2#
    • liangxianghai
    • 2007-11-21
    还可以
  • 3#
    • wmqrslf
    • 2007-11-26
    还可以用的!!!
  • 4#
    • hklasus
    • 2007-11-27
    dddddddddd:default6:
  • 5#
    • agcnt
    • 2007-12-18
    好帖子!!学习了!
  • 6#
    • lushoujing
    • 2008-04-06
    didddddddddddddddddddddddddd
  • 7#
    • yxf0379
    • 2008-04-09

  • 8#
    • hubo0884
    • 2008-07-30
    感谢分享
  • 9#
    • 525436
    • 2008-12-26
    :default6:
回复
登录后发表回复。没有注册?立即注册