2017-08-14 121 views
0

在Excel女士中使用Visual Basic时遇到问题。我有一种DMS格式的坐标数据(经度和纬度),但它不是通常的格式。数据看起来像这样:在Microsoft Excel Visual Basic中将DMS格式转换为十进制的函数

E 103 29 12.4562 
W 3 9 1.4562 
N 16 5 32.4333 
S 16 5 2.4333 

我想将它转换为标准的十进制格式。但是,我以前从未使用过Visual Basic。 E,N和W,S的约定分别是1和-1。我期待从数据列表中的输出是

103.4867934 
-3.1504045 
16.09234258 
-16.08400925 

我希望有人能做出一个Visual Basic代码这个数据,因为我有很多像这样的数据,我不能手动转换转换。

谢谢。

+0

你还好吗用公式? –

+0

我对任何配方都没问题。我会尽可能快地理解它,因为我学习了另一种编程语言。 –

回答

0

,而不是VBA的,你可以使用这个公式:

=--(INDEX({"+","+","-","-"},MATCH(LEFT(A1,1),{"E","N","W","S"},0))&MID(A1,3,FIND(" ",MID(A1,3,LEN(A1))))+MID(A1,FIND("}}}",SUBSTITUTE(A1," ","}}}",2))+1,2)/60+MID(A1,FIND("}}}",SUBSTITUTE(A1," ","}}}",3))+1,99)/3600) 

enter image description here

+0

嗯,这是一个我必须理解的长公式,但是谢谢。我尽可能快地学习它。无论如何,我仍然乐意接受任何关于这个问题的答案,特别是在VBA代码上。 –

相关问题