Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该使用什么样的代码循环DMS坐标,并在Excel VBA中将其转换为十进制?_Excel_Vba_Loops - Fatal编程技术网

我应该使用什么样的代码循环DMS坐标,并在Excel VBA中将其转换为十进制?

我应该使用什么样的代码循环DMS坐标,并在Excel VBA中将其转换为十进制?,excel,vba,loops,Excel,Vba,Loops,我在excel中有大量坐标数据,如DMS中所列,格式如下: 893952N1001233.1 882222N0991244.4 ... ... 等等等等 这些数据在我的A栏 我将该列视为文本,并将两个坐标用“N”分隔,以便我可以在B列和C列的单独列中获得两个坐标(例如:B1:893952,C1:1001233.1;B2:882222 C2:991244.4) 因为这些数字是在DMS中,所以它们是DDMMSS.S,这取决于它们是否有小数。当然,有些有,有些没有。我可以使用什么代码读取B列和C列

我在excel中有大量坐标数据,如DMS中所列,格式如下:

893952N1001233.1
882222N0991244.4
... 
...
等等等等

这些数据在我的A栏

我将该列视为文本,并将两个坐标用“N”分隔,以便我可以在B列和C列的单独列中获得两个坐标(例如:B1:893952,C1:1001233.1;B2:882222 C2:991244.4)

因为这些数字是在DMS中,所以它们是DDMMSS.S,这取决于它们是否有小数。当然,有些有,有些没有。我可以使用什么代码读取B列和C列中的DMS坐标,然后通过取值的“SS.S”部分并除以3600将它们转换为十进制度数,取值的MM部分并除以60,然后将其添加到DD(当然有时是DDD)

我想把结果坐标放到d列和E列

因此,基本上,我希望它读取坐标,使用DD+(MM/60)+(SS.S/3600)的方法将DMS转换为十进制度数,然后循环遍历剩余的大量坐标

我希望我说得足够清楚,如果不够清楚,请告诉我我解释得不好,我会尝试解释!本网站上善良的人们的智慧将不胜感激


(如果Excel上有一个简单的函数,可以为我转换我丢失的内容,我为丢失提前道歉,但我检查了,找不到一个)

在第1列中输入以下内容(每一新行都是新行):

这就是你要找的吗?如果没有,请发表评论


当然,您必须针对数据布局适当地设置公式,这只是一个示例。

我已经回答了,刚刚意识到您提到的DD有时是DDD。如果有a.s,它是否只有小数点后的一位数?没关系,我改变了答案;如果有问题,请告诉我。这样就可以了!!它工作得很好,干得好,mkingston!我对你表示感谢和赞同。
893952N1001233.1
=LEFT(A1,FIND("N",A1)-1)
=RIGHT(A1,LEN(A1)-FIND("N",A1))
=IF(OR(LEN(A2)=7,LEN(A2)=9),LEFT(A2,3)+MID(A2,4,2)/60+RIGHT(A2,LEN(A2)-5)/3600,LEFT(A2,2)+MID(A2,3,2)/60+RIGHT(A2,LEN(A2)-4)/3600)
=IF(OR(LEN(A3)=7,LEN(A3)=9),LEFT(A3,3)+MID(A3,4,2)/60+RIGHT(A3,LEN(A3)-5)/3600,LEFT(A3,2)+MID(A3,3,2)/60+RIGHT(A3,LEN(A3)-4)/3600)