Excel VBA - Wert in Hex mit führenden Nullen

OP #7401331
Lesenswert?

Abend zusammen,

Excel und VBA ist gar nicht mein Bereich, jedoch benötige ich es zur Zeit und hab mich heute ein wenig eingelesen, doch die Feinheiten hab ich noch net drauf.

Auf folgendes Problem, habe ich noch nichts gefunden:

[Bild: excel.png]

1
Sub dez_to_hex()
2
    Dim x As Byte
3
        
4
    x = Cells(2, 1).Value
5
    Cells(2, 2).Value = Hex(x)
6
End Sub

Ich habe ein Byte. Nun möchte ich diese Byte in einer Zelle ausgeben, als HEX Wert (mit führenden Nullen, hier mit einer 0, also "0A").

Die Ausgabe ansich funktioniert, jedoch bekomme ich die 0 nicht davor. Habe da leider zuwenig Ahnung von VBA, bzgl. Formatierung und habe auch nichts gutes gefunden, was zufriedenstellend wäre.

Wenn ich in dem Excel Dokument ohne VBA das versuche, kann ich das nutzen, z.B.:

1
=DEZINHEX(10;2)

Das ergibt 2 Stellen.

Geht das in der VBA Programmierung etwa nicht?

Angehängte Dateien:
OP #7401549
Lesenswert?

Jems schrieb:

Worksheets("Sheet1").Range("B2").Formula = "="0x"&DEZINHEX(A2;2)"

Hans-Georg L. schrieb:

=DEZINHEX(Zahl;Stellen) =DEZINHEX(10;8) -> 0000000A

Das ist ja das Problem, dass er im Code Editor DEZINHEX nicht kennt.

Frank O. schrieb:

Public Function dez_to_hex(ByVal wert As LongLong, ByVal stellen As Byte) As String Dim l As Byte dez_to_hex = Hex(wert) l = Len(dez_to_hex) If l < stellen Then dez_to_hex = String$(stellen - l, "0") + dez_to_hex End Function

Das funktioniert, Danke ;)

Trotzdem würde ich gerne wissen, warum ich im Code nicht die gleichen "Funktionen" nutzen kann, die man sonst direkt in Excel nutzt? z.B.:

  • DEZINHEX()
  • BITRVERSCHIEB()

auch wenn man Bit Shift im Code ja eleganter lösen kann.

#7401570
Lesenswert?

Adam P. schrieb im Beitrag #7401549: ...

Trotzdem würde ich gerne wissen, warum ich im Code nicht die gleichen "Funktionen" nutzen kann, die man sonst direkt in Excel nutzt? z.B.:

  • DEZINHEX()
  • BITRVERSCHIEB()

auch wenn man Bit Shift im Code ja eleganter lösen kann.

Vermutlich, weil VBA die internationale Schreibweise der Funktionen nutzt. siehe https://de.excel-translator.de/dezinhex/ oder https://www.excelfunctions.eu/DEZINHEX/German-English --> DEZINHEX (de) wird zu DEC2HEX (en) und BITRVERSCHIEB -> BITRSHIFT

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren