2016-06-30 17 views
0

Der ursprüngliche Datentyp [h]: mm: ssÄndern Datentyp in Excel-VBA in Text

50:53:00 

Ich möchte ähnliche

50h 53m 

zu Text-Datentyp ändern Wie dies konvertieren in Excel-VBA?

+0

wie 'Selection.Value = Application.Text (Selection.Value," [h] "" h "" mm "" m "" ")' ??? –

+0

oh oder als Formel: '= TEXT (A1," [h] "" h "" mm "" m "" ")" –

Antwort

2

Sie können es mit oder ohne VBA tun.

1.Without vba

  • die Zellen Set-Format custom: [hh] "h" mm "m"

2.With vba

Sub numberf() 

Dim ws As Worksheet 

Set ws = ThisWorkbook.Worksheets(1) 

ws.Range("F1").NumberFormat = "[hh]""h"" mm""m""" 


End Sub 
+0

Beide funktionieren. Danke – Vito

+0

Könnten Sie es als Antwort markieren als: p, danke. –

+0

Wie man als Antwort markiert? – Vito

0

Ich würde versuchen, eine benutzerdefinierte Funktion wie folgt aus:

Function ConvertToText(TimeValue As Double) As String 
    Hours = Int(TimeValue * 24) 
    Minutes = Int((TimeValue * 24 - Hours) * 60) 
    ConvertToText = Hours & "h " & Minutes & "m" 
End Function 

ich die ursprünglichen Werte in einer Spalte setzen würde, die Formel in einem anderen verwenden und das Original ausblenden, wenn Sie nicht wollen, zeige es an.

Eine andere Option wäre, einen Bereich zu einem Sub zu geben, den Sub zu einer Schaltfläche zu verknüpfen und den Subcomputer durch jede Zelle in dem Bereich laufen zu lassen und die Änderungen vorzunehmen.

+0

die UDF ist nicht funktionsfähig. Ich verwende eine Zeichenfolge, um die Ausgabe zu speichern. Das Ergebnis ist nichts (NULL). – Vito

+0

Sie sollten 'TimeValue' als Zahlenformat deklarieren oder zumindest' cdate' verwenden ... @vito pls überprüfen, ob das helfen würde –

+0

mein ursprünglicher 'TimeValue' ist im Doppelformat. Dann gebe ich das direkt in die Funktion ein. – Vito

1

können Sie Führen Sie auch folgende Formatierung Ihrer Excel-Zelle durch:

h\h mm \m