度分秒的提取,转化十进制
Sub conversion()
Dim i, j, a, du, fen, miao, flag_a, flag_b, temp
Debug.Print "Begin"
Set a = Worksheets("Sheet1").UsedRange
' If Sum_Workbook.Worksheets.Count > 1 Then
' For i = Sum_Workbook.Worksheets.Count To 2 Step -1
' Sum_Workbook.Worksheets(i).Delete
' Debug.Print "Delete"
' Next
' End If
Worksheets.Add after:=Worksheets(Worksheets.Count)
Worksheets(2).Name = "Sheet2"
For i = 1 To a.Rows.Count
For j = 1 To a.Columns.Count
temp = a.Cells(i, j)
If temp Like "106°*" Then
'度
du = Mid(temp, 1, 3)
'分
flag_a = InStr(1, temp, "°")
flag_b = InStr(temp, "'")
fen = Mid(temp, flag_a + 1, flag_b - flag_a - 1)
'秒
flag_a = InStr(1, temp, "'")
flag_b = InStr(temp, "秒")
miao = Mid(temp, flag_a + 1, flag_b - flag_a - 1)
'整合
Debug.Print du
Debug.Print fen
Debug.Print miao
Worksheets(2).Cells(i, j) = du + fen / 60 + miao / 3600
End If
If temp Like "30°*" Then
'度
du = Mid(temp, 1, 2)
'分
flag_a = InStr(1, temp, "°")
flag_b = InStr(temp, "'")
fen = Mid(temp, flag_a + 1, flag_b - flag_a - 1)
'秒
flag_a = InStr(1, temp, "'")
flag_b = InStr(temp, "秒")
miao = Mid(temp, flag_a + 1, flag_b - flag_a - 1)
'整合
Debug.Print du
Debug.Print fen
Debug.Print miao
Worksheets(2).Cells(i, j) = du + fen / 60 + miao / 3600
Debug.Print Worksheets(2).Cells(i, j)
End If
Next
Next
Debug.Print "Done"
End Sub