Excel中使用VBA进行度分秒与十进制度的转换
发现Excel的VBA功能真是批量处理的一把利刃,工作中小试牛刀了一把,将Excel中度分秒形式的坐标批量处理成十进制度形式,处理完后用于GIS展点制图。
原Excel数据如下:
VBA代码如下:
Sub Coorder()
Dim Longitude, Latitude As String, arr
Dim num As Integer
Dim LongColIdx As Integer
Dim latColIdx As Integer
LongColIdx =
latColIdx =
num = Application.CountA(ActiveSheet.Range("A:A"))
For i = To num
Longitude = Cells(i, LongColIdx)
arr = Split(Longitude, "°")
Cells(i, LongColIdx + ) = arr()
Longitude = arr()
arr = Split(Longitude, "'")
Cells(i, LongColIdx + ) = arr()
Longitude = arr()
arr = Split(Longitude, """")
Cells(i, LongColIdx + ) = arr()
Cells(i, LongColIdx + ) = Cells(i, LongColIdx + ) + Cells(i, LongColIdx + ) / + Cells(i, LongColIdx + ) / Latitude = Cells(i, latColIdx)
arr = Split(Latitude, "°")
Cells(i, latColIdx + ) = arr()
Longitude = arr()
arr = Split(Longitude, "'")
Cells(i, latColIdx + ) = arr()
Longitude = arr()
arr = Split(Longitude, """")
Cells(i, latColIdx + ) = arr()
Cells(i, latColIdx + ) = Cells(i, latColIdx + ) + Cells(i, latColIdx + ) / + Cells(i, latColIdx + ) /
Next i
End Sub
处理完结果如下:
结论:
1、对于Excel大批量数据处理,效率极高。
① 开发环境方面,无需搭建特定的开发环境,在Excel里就可以进行编码;
② 编码方面,由于直接是寄生于Excel自身,相当于一种内嵌的API,其API接口简单、集成度高、调用方便;
2、上述代码其实可以额外起一个作用,就是对原始度分秒数据的文本格式做质检。
Excel中使用VBA进行度分秒与十进制度的转换的更多相关文章
- Excel中使用VBA访问Access数据库
VBA访问Access数据库 1. 通用自动化语言VBA VBA(Visual Basic For Application)是一种通用自动化语言,它可以使Excel中的常用操作自动化,还可以创建自定义 ...
- 如何在Excel中通过VBA快速查找多列重复的值
今天项目组的一个同事问我如何快速的找到一个Excel中第3列和第5列的值完全重复的值,我想了想虽然Excel中自带查找重复值的功能,但是好像只能对同一列进行比较,所以就写了一个VBA进行处理,VBA非 ...
- Roland钢琴开发中音符值、度、与音名之间的转换算法
在Roland钢琴伴侣的开发中,首先将mid文件解析出来取到每一个音符的起始时间,每一个音符的时值,音符值(比如中央C的值是60),在绘五线谱的时候需要将每一个音符值与它对应的度(octave)和音名 ...
- C#: 数字经纬度和度分秒经纬度间的转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- 度分秒转换十进制度 之Excel实现
我们都知道,1°=60′,1′=60″,1°=3600″.那么,轻而易举容易计算:112°18′37.6″=112+18/60+37.6/3600≍112.3104444°这当然是有参考价值的,比如爬 ...
- 用VBA计算WPS 表格ET EXCEL中的行数和列数的多重方法
用VBA计算WPS 表格ET EXCEL中的行数和列数 每种方法中上面的是Excel的行数,下面的是Excel的列数. 方法1: ActiveSheet.UsedRange.Rows.Count Ac ...
- Excel中的宏--VBA的简单例子
第一步:点击录制宏 第二步:填写宏的方法名 第三步:进行一系列的操作之后,关闭宏 第四步:根据自己的需要查看,修改宏 第六步:保存,一般是另存为,后缀名为.xlsm,否则宏语言不能保存. 到此为止恭喜 ...
- VBA在Excel中的应用(一):改变符合条件单元格的背景颜色
在使用excel处理数据的时候,为了能更清晰的标示出满足特定条件的单元格,对单元格添加背景色是不错的选择.手工处理的方式简单快捷,但是当遇到大批量数据,就会特别的费时费力,而且不讨好(容易出错).通过 ...
- VBA读取word中的内容到Excel中
原文:VBA读取word中的内容到Excel中 Public Sub Duqu() Dim myFile As String Dim docApp As Word.Applicati ...
随机推荐
- date.getTime()
Date date = new Date(); System.out.println(date.getTime()); 输出结果是1210745780625 编译时间当时时间大概是2008年5.14好 ...
- LOG4J spring与mybatis整合
1.导入包log4j-1.2.17.jar <dependency> <groupId>log4j</groupId> ...
- tomcat发布webservice
编写后台代码: package test; import javax.jws.WebParam; import javax.jws.WebService; @WebService public cla ...
- form表单的默认提交行为
一 如果<form></form>表单中只有一个<input type="text"/>,则使文本框获取焦点,并单击回车,form会自动提交. ...
- 【校招面试 之 剑指offer】第9-1题 用两个栈实现一个队列
#include<iostream> #include<stack> using namespace std; template <typename T> void ...
- 乱序字符串anagrams
[抄题]: 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram).如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中. 对于字符串数组 ["lin ...
- 13-matlab图片转化
图片格式: 处理函数: rgb2gray() gray2rgb()
- 生成静态页html
代码: using System; using System.Collections; using System.Collections.Generic; using System.IO; using ...
- Asia Stock Exchanges[z]
Asia Stock Exchanges July 7, 2009 This article is to summarise the trading rules of some Asia stocke ...
- poj3017 Cut the Sequence 单调队列 + 堆 dp
描述 把一个正数列 $A$分成若干段, 每段之和 不超过 $M$, 并且使得每段数列的最大值的和最小, 求出这个最小值. 题目链接 题解 首先我们可以列出一个$O(n^2)$ 的转移方程 : $F_i ...