经纬度转换器在线转换(手把手教你经纬度的转换)

我们可以不要懂VBA,但要会懂得用VBA!每个人都可以创建一个属于自己的【E帮办公】。

2cae637d-e7c3-463c-913b-ac9a31433238

情景

随着工作的数字化、地理信息化,最近在工作中遇到很多经纬度采取的事。现场采集回来的经纬度格式五花八门,不能直接满足使用要求,需进一步转换。主要就是十进制表示和度分秒表示之间的转换,还有度、分、秒符号的问题,有些不是英文标的需要转成英文标。为此设计一个经纬度转换的小程序,添加到【E帮办公】中,方便使用。不用再打开浏览器搜索在线经纬度转换;也不用再用一堆函数,设置一堆中间量来转换了。e225dd8adfa349409b5c449db9ccfee3

在线经纬度转换5d99c1128aa54ccbb6e6850a4cb3538a

自编公式经纬度转换

方案

获取需转换单元格的经纬度,利用split()函数将数据进行切片并组成新数组,判断数组长度以识别经纬度的类型。最后通过经纬度转换公式来生成所需的经纬度格式,同时考虑是否将经纬合并在一起表示,用“,”隔开。


如果你觉得有用,还希望给个【关注】给个【赞】!

如果你想要自己的小功能,点击【关注】,在评价区留下小功能的要求!

有需要,可【关注】后【私信】“经纬度格式转换”获取模块。

创建自己的选项卡及将程序添加到选项卡中,参照文章【VBA小程序的添加——创建自己的选项卡】


附上代码供参考

模块部分

Sub 经纬度格式转换()
    Application.DisplayAlerts = False '//关闭系统提示
    
    latLongConversion.Show
    
    Application.DisplayAlerts = True '//恢复系统提示
End Sub

窗体部门

Private Sub CommandButton1_Click()
On Error Resume Next
Dim LatLonRow, LatLonCol, AcRow, AcCol, llArr As Variant, llList As Variant, inRange As Variant, Lat, Lon

If OptionButton1.Value = True Then

    Set llArr = Application.InputBox(prompt, Title:="请选择需转换经纬度的区域", Type:=8) '获取经纬度数据
    Set inRange = Application.InputBox(prompt, Title:="请选择经纬度插入的起始位置(单个单元格)", Type:=8) '获取经纬度数据

    If inRange Is Nothing Then
        AcRow = ActiveCell.Row '获取当前单元格所在行
        AcCol = ActiveCell.Column '获取当前单元格所在列
    Else
        AcRow = inRange.Row '获取当前单元格所在行
        AcCol = inRange.Column '获取当前单元格所在列
    End If
    
    If llArr Is Nothing Then
        MsgBox "未选取有效数据,程序退出!"
        Exit Sub
    End If

    For i = 1 To llArr.Count
        Lat = ""
        Lon = ""
        ll = llArr(i).Value
        ll = Replace(ll, "°", "#")'对经纬度中的字符进行替换
        ll = Replace(ll, "′", "#")
        ll = Replace(ll, "″", "#")
        ll = Replace(ll, ",", "#")
        ll = Replace(ll, ",", "#")
        ll = Replace(ll, "##", "#")
        ll = Replace(ll, " ", "")
        llList = Split(ll, "#")
        Lat = Round(llList(0) + llList(1) / 60 + llList(2) / 3600, 6)
        Lon = Round(llList(3) + llList(4) / 60 + llList(5) / 3600, 6)
        If UBound(llList) > 3 Then
            If CheckBox1.Value = True Then
                Cells(AcRow + i - 1, AcCol) = Lat & "," & Lon
            Else
                Cells(AcRow + i - 1, AcCol) = Lat
                Cells(AcRow + i - 1, AcCol + 1) = Lon
            End If
        Else
            Cells(AcRow + i - 1, AcCol) = Lat
        End If
    Next i
    'err_1: MsgBox Err.Description & ",程序退出!"
Else
    Set llArr = Application.InputBox(prompt, Title:="请选择需转换经纬度的区域", Type:=8) '获取经纬度数据
    Set inRange = Application.InputBox(prompt, Title:="请选择经纬度插入的起始位置(单个单元格)", Type:=8) '获取经纬度数据

    If inRange Is Nothing Then
        AcRow = ActiveCell.Row '获取当前单元格所在行
        AcCol = ActiveCell.Column '获取当前单元格所在列
    Else
        AcRow = inRange.Row '获取当前单元格所在行
        AcCol = inRange.Column '获取当前单元格所在列
    End If
    
    If llArr Is Nothing Then
        MsgBox "未选取有效数据,程序退出!"
        Exit Sub
    End If

    For i = 1 To llArr.Count
        latD = ""
        latF = ""
        latM = ""
        LonD = ""
        LonF = ""
        LonM = ""
        ll = llArr(i).Value
        ll = Replace(ll, "°", "")
        ll = Replace(ll, ",", "#")
        ll = Replace(ll, ",", "#")
        llList = Split(ll, "#")
        latD = Int(llList(0))
        latF = Int((llList(0) - latD) * 60)
        latM = Round((((llList(0) - latD) * 60) - latF) * 60, 2)
        LonD = Int(llList(1))
        LonF = Int((llList(1) - LonD) * 60)
        LonM = Round((((llList(1) - LonD) * 60) - LonF) * 60, 2)
        Lat = latD & "°" & latF & "°" & latM & "°"
        Lon = LonD & "°" & LonF & "°" & LonM & "°"
        If UBound(llList) = 1 Then
            If CheckBox1.Value = True Then
                If Lat <> "" And Lon <> "" Then
                    Cells(AcRow + i - 1, AcCol) = Lat & "," & Lon
                Else
                    If Lat <> "" Then
                         Cells(AcRow + i - 1, AcCol) = Lat
                    Else
                         Cells(AcRow + i - 1, AcCol) = Lon
                    End If
                End If
            Else
                If Lat <> "" And Lon <> "" Then
                    Cells(AcRow + i - 1, AcCol) = Lat
                    Cells(AcRow + i - 1, AcCol + 1) = Lon
                Else
                    If Lat <> "" Then
                        Cells(AcRow + i - 1, AcCol) = Lat
                    Else
                        Cells(AcRow + i - 1, AcCol + 1) = Lon
                    End If
                End If
            End If
            
        Else
            If llList(0) <> "" Then
                Cells(AcRow + i - 1, AcCol) = Lat
            End If
            
        End If
    Next i
End If


End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub
来源于互联网,侵权请联系邮箱3484479098@qq.com删除
(0)
全球变橙的头像全球变橙
上一篇 2022年3月25日 上午10:39
下一篇 2022年3月25日

相关推荐

  • 鮰鱼多少钱一斤市场价

    鮰鱼是一种常见的淡水鱼类,它含有丰富的蛋白质、维生素和矿物质等营养成分,被认为是有益于人体健康的食品。不同的地区和季节,鮰鱼的价格也有所差异,一般来说,它的市场价为20元至30元左…

    2024年1月3日
  • 罗丽丝内衣怎么样

    罗丽丝内衣品牌是一家专注于女性内衣设计和制造的知名品牌。作为一家看重细节和品质的品牌,罗丽丝内衣产品始终保持着高品位和高水准,备受广大女性朋友的青睐。今天我们就来了解一下罗丽丝内衣…

    2024年1月25日
  • 失业之后要不要去领失业金(失业以后,交了10年的社保,要不要去领失业金呢?)

    失业以后,自己曾经缴纳了10年的社保,要不要去领失业金呢?我们能否具备领取失业金的条件,还要看你的劳动合同关系是自己解除的还是单位解除的,这一点是很关键的。如果你个人提出离职,也就是说你个人原因解除了劳动合同,那么是不具备领取失业金的条件。也是不能够享受到失业金的待遇。

    2022年3月8日
  • 热熔胶棒怎么用

    热熔胶棒主要用于手工制作、DIY修补及家居装修等领域。它是一种非常方便的工具,可以让我们在短时间内快速地固定、粘合不同材料。但是在使用热熔胶棒时,也需要注意一些问题,包括使用方法、…

    2024年2月9日
  • 长沙黄花机场在哪

    长沙黄花国际机场位于湖南沙市黄花岭镇,是湖南省的主要机场之一。该机场始建于1986年,并在几经扩建之后于1997年正式投入使用。截至目前,长沙黄花机场已经成为中南地区最为繁忙的机场…

    2024年1月15日
  • 抖音游戏直播怎么开

    抖音游戏直播是一种新兴的直播方式,越来越多的人喜欢在抖音上直播游戏,吸引更多的观众。如果你也想尝试开启自己的抖音游戏直播,下面是一些步骤供参考: 1. 准备直播设备和软件:你需要准…

    2024年1月21日
  • 木瓜什么时候成熟

    木瓜是一种高营养、美味可口的水果,深受人们的喜爱。但是,许多人不知道木瓜应该在何时食用,才能达到最佳的口感和营养价值。据研究表明,木瓜的成熟期是在果实变黄后的几天内,也就是说,木瓜…

    2024年3月21日
  • 两元店货源从哪里进货

    在两元店中,货源可以从多处进货,其中主要包括工厂、批发市场、网店、厂家直销等途径。 首先是工厂进货,这是两元店中最常见的进货方式之一。通过与生产厂家建立长期合作关系,可以保证商品的…

    2024年3月5日
  • 昨天多少度

    昨天的温度是30度。 原因分析: 第一,夏季气候与热带气候的影响,夏季是高温多雨的季节,气温高、空气湿度大、阳光强烈,导致温度的升高。 第二,城市化进程的加快,城市的建筑、交通、人…

    2024年2月13日
  • 平邮是什么快递

    平邮是一种邮局提供的普通邮寄服务,选择该服务发送邮件或物品时,邮件或物品将会按照普通速度寄送到收件人手中,不提供任何快递服务。与其他快递服务相比,平邮的优势在于价格低廉,一般情况下…

    2024年3月4日

发表回复

登录后才能评论