2016-07-14 5 views

Antwort

0

Wie Bryan Davies erwähnt, können Sie dies mit Formeln tun.

den ursprünglichen Text Angenommen wird immer, wie Sie in Ihrem Bild formatiert zeigten, soll die folgende Formel arbeiten: =(LEFT(A1,FIND("hr",A1)-1)*60)+MID(A1,FIND("hr",A1)+3,3) & " mins"

Natürlich, wenn Sie darauf bestehen, einen Makro auf, kann der folgende Code verwendet werden, die konvertieren aktive Zelle (das Makro funktioniert besser in dem Sinne, dass es flexiblere Formatierung (zB „1 hr10mins“ akzeptiert arbeitet mit dem Makro aber nicht mit der Formel)):

Sub ConvertToMins() 
    Dim mins As Integer 
    Dim SearchString As String 
    Dim hourLength As Integer 
    Dim minPos As Integer 

    mins = 0 
    SearchString = ActiveCell.Text 

    If InStr(1, SearchString, " h", vbTextCompare) <> 0 Then 
     hourLength = InStr(1, SearchString, " h", vbTextCompare) - 1 
    ElseIf InStr(1, SearchString, "h", vbTextCompare) <> 0 Then 
     hourLength = InStr(1, SearchString, "h", vbTextCompare) - 1 
    Else 
     Exit Sub 
    End If 

    mins = mins + (CDbl(Left(SearchString, hourLength)) * 60) 

    If InStr(1, SearchString, " m", vbTextCompare) <> 0 Then 
     minPos = InStr(1, SearchString, " m", vbTextCompare) - 2 
    ElseIf InStr(1, SearchString, "m", vbTextCompare) <> 0 Then 
     minPos = InStr(1, SearchString, "m", vbTextCompare) - 2 
    Else 
     ActiveCell.Value = CStr(mins) & " mins" 
     Exit Sub 
    End If 

    If IsNumeric(Mid(SearchString, minPos, 2)) = True Then 
     mins = mins + (CInt(Mid(SearchString, minPos, 2))) 
    Else 
     mins = mins + (CInt(Mid(SearchString, minPos, 1))) 
    End If 

    ActiveCell.Value = CStr(mins) & " mins" 
End Sub 
+0

Danke das funktioniert cool .... aber die Thng ist ich wollte es durch alle Zellen im Bereich von C2: C22 in allen meinen Blättern der Arbeitsmappe dieser Code funktioniert für nly aktive Zelle. @ Zachary Lim –