在excel中用vba实现全站仪数据导入及其格式化

在excel中用vba实现全站仪数据导入及其格式化

ID:31530406

大小:105.00 KB

页数:5页

时间:2019-01-13

在excel中用vba实现全站仪数据导入及其格式化_第1页
在excel中用vba实现全站仪数据导入及其格式化_第2页
在excel中用vba实现全站仪数据导入及其格式化_第3页
在excel中用vba实现全站仪数据导入及其格式化_第4页
在excel中用vba实现全站仪数据导入及其格式化_第5页
资源描述:

《在excel中用vba实现全站仪数据导入及其格式化》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、在EXCEL中用VBA实现全站仪数据导入及其格式化蒋程(湖北省神龙地质工程勘察院,湖北武汉430056)摘要利用VBA实现外部数据导入EXCEL中的工作表并进行格式化,使外部数据导入工作大大简化和高效。关键词EXCEL应用,数据导入,数据格式化1、前言本单位使用莱卡TCA2003进行隧道收敛变形观测。在实际使用过程中,需要将全站仪的数据导入EXCEL中以进行进一步的分析计算。TCA2003的数据文本带有许多特殊的格式符,若使用EXCEL的“外部数据导入”功能进行导入较为繁琐,并且由于在原始数据中,并未标注小数点,随着基站坐标的设置不同,数据应移动的位数也不尽相同。能否利用EX

2、CEL内置的VBA(VisualBasicforApplications)来实现原始数据的导入并进行格式化呢?笔者尝试并实现了上述设想,使数据导入工作大大简化和高效。2、全站仪数据格式的分析下面我们来分析TCA2003全站仪的数据格式。由全站仪导入(仪器自带的程序)计算机的数据保存于一个名为FILE01.GSI的文件中(GSI-8格式),该文件采用ASCII编码,用写字板打开这个文件,内容如下所示:110001+000G4YGX81..00+4999281582..00+4998658783..06+01003902110002+000582.181..00+49973047

3、82..00+5001604783..06+01017070110003+000582.281..00+4997428382..00+5001641883..06+01056208通过查阅《TPS1000全站仪定位系统操作手册》并分析以上的数据可知:每一行记录由四个记录字组成,分别为“11+测点编号”,“81+东坐标值(Y)”,“82+北坐标值(X)”,“83+高程值(Z)”,“11”、“81”、“82”、“83”分别是这四个字段的打头标识符。具体来讲,第一个字段又由两部分组成:第一部分是仪器分配的唯一的、不可能重复的序号,第二部分才是用户输入的“点号”,点号只占8位,不足8

4、位的前面用“0”补齐。这两部分用“+”号连接。第二个字段的打头是“81”标识符,该字段的第六位表明数据的单位,可以的取值为“0”、“6”、“8”,分别代表毫米、1/10毫米、1/100毫米。第三和第四字段的含义与第二字段相似。下面我们的任务是将以上的文本通过VBA导入EXCEL中。3、VBA编程VBA(VisualBasicforApplications)可以看作是内嵌于OFFICE套件中(包括WORD/EXCEL等)的VisualBasic,可以应用于这些软件中的编程,以进一步扩展它们功能。数据导入及格式化的工作可以考虑用一个BUTTON来实现。打开EXCEL,鼠标右键单击

5、工具栏空白处,调出“VisualBasic”工具条和“控件工具箱”,在EXCEL表单中拉出一个BUTTON,单击这个BUTTON,进入程序编辑界面(如下图1所示)。图1VBA程序设计界面程序设计基本思路:用户点击“导入”按钮后,程序逐行读入FILE01.GSI文件,对每行数据进行相应的处理,将处理的结果写入EXCEL单元格中,导入完成后,在第一行写上导入的日期,并在其右侧的单元格写入“

6、

7、”标识,下次导入将以此为起点,因此多次导入不用用户指定导入位置,也不会导致前后覆盖。下面为编写的代码实例:PrivateSubcmd1_Click()DimiAsInteger'定义行号Di

8、mjAsInteger'定义列号DimbcAsString'读入的字符串DimefAsStringDimStrTempAsStringDimaAsDoubleDimkAsIntegerDimcountAsIntegerDimFnAsString'文件名DimarrSplitAsVariant‘Variant类型的变量DimMySheetAsWorksheet‘定义工作表单SetMySheet=Worksheets("数据库")'工作表命名为数据库j=1'寻找数据写入的位置,“

9、

10、”为程序自定义的分隔符WhileMySheet.Cells(1,j).Value<>"

11、

12、"And

13、j<255‘一个表单最多为255列j=j+1WendIfj=255Then'没找到“

14、

15、”标志符或列号等于255MsgBox"标识符缺失!",vbOKOnly,"Warning!"ExitSubEndIfFn="C:LEICAFILE01.GSI"'定义即将打开的文件名OpenFnForInputAs#1i=2'由第二行开始写DoWhileNotEOF(1)Input#1,bc'读入一整行文本arrSplit=Split(bc,"")'将这一行文本以空格为分隔符,分成若干段。Fork=0ToUBou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。