Hallo Experten,
ich habe 2 Bytes (Lo 96, Hi 240), die ich in eine Integer-Zahl mit Vorzeichen umrechnen möchten. Es soll also „-4000“ als Ergebnis herauskommen.
Wie kann ich das in VBA realisieren ohne viel IF-THEN-Gemurkse.
Vielen Dank
Martin
Hallo Experten,
ich habe 2 Bytes (Lo 96, Hi 240), die ich in eine Integer-Zahl mit Vorzeichen umrechnen möchten. Es soll also „-4000“ als Ergebnis herauskommen.
Wie kann ich das in VBA realisieren ohne viel IF-THEN-Gemurkse.
Vielen Dank
Martin
Hallo Martin,
ich habe 2 Bytes (Lo 96, Hi 240), die ich in eine Integer-Zahl
mit Vorzeichen umrechnen möchten. Es soll also „-4000“ als
Ergebnis herauskommen.Wie kann ich das in VBA realisieren ohne viel
IF-THEN-Gemurkse.
die Bytes aus einem Bytearray in eine Integervariable kopieren.
Vorsicht! Der Code ist nur mit dem Notepad geschrieben, ungetestet!
(Sollte aber laufen. )
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" \_
Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, \_
ByVal ByteLen As Long)
Private Sub Command1\_Click()
Dim V1 As Integer
Dim V2(1) As Byte
V2(0) = 96
V2(1) = 240
CopyMemory ByVal VarPtr(V1), V2(0), 2
End Sub
Gruß Rainer
Hi Martin,
Moment! Du schreibst ja VBA. Da war doch etwas …
Wenn das VBA ‚VarPtr‘ nicht kennt, sind zwei Arrays nötig.
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" \_
Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, \_
ByVal ByteLen As Long)
Private Sub Command1\_Click()
Dim V1(0) As Integer
Dim V2(1) As Byte
V2(0) = 96
V2(1) = 240
CopyMemory V1(0), V2(0), 2
End Sub
Das muss auch in VBA ohne Problem laufen.
Gruß Rainer
p = (hi > 127) * (256 * (256 - hi) - lo) + (hi
Hi,
Kann man sich selbst Sternchen geben? )
nein, aber ich kann.
Gruß Rainer