PublicFunction LatitudeToGrid(Longitude AsString, Latitude AsString)AsString' Longitude: 经度,东为正,西为负。 度、分、秒用“,” 分隔。' Latitude:纬度,北为正,南为负。度、分、秒用“,” 分隔。' bh4bin' 2023/1/29Dim A AsSingle, B AsSingle, C AsSingleDim D AsSingle, E AsSingle, F AsSingleDim X AsSingle, Y AsSingleDim Grid AsString, Tmp AsStringDim InputAyy()AsStringIf Trim(Longitude)=""Or Trim(Latitude)=""ThenExitFunction
InputAyy = Split(Trim(Longitude),",")
A = InputAyy(LBound(InputAyy))
B = InputAyy(LBound(InputAyy)+1)
C = InputAyy(UBound(InputAyy))
X = A + B /60+ C /3600+1/1000000
InputAyy = Split(Trim(Latitude),",")
D = InputAyy(LBound(InputAyy))
E = InputAyy(LBound(InputAyy)+1)
F = InputAyy(UBound(InputAyy))
Y = D + E /60+ F /3600+1/1000000If X >=-180And X <180And Y >=-90And Y <=90Then
A = X /20+9: B =Int(A): Grid =Chr$(B +65)
C = Y /10+9: D =Int(C): Grid = Grid +Chr$(D +65)
A =(A - B)*10: B =Int(A): Grid = Grid +Chr$(B +48)
C =(C - D)*10: D =Int(C): Grid = Grid +Chr$(D +48)
B =Int((A - B)*24): Grid = Grid +Chr$(B +97)
D =Int((C - D)*24): Grid = Grid +Chr$(D +97)
LatitudeAndLongitudeToMadenheadGrid = Grid
Else
Tmp = MsgBox(prompt:="数据有误,请检查!!!", Buttons:=vbExclamation, Title:="警告")ExitFunctionEndIfEndFunction