В Excel VBA вы можете столкнуться с ситуациями, когда вам нужно преобразовать два коротких целых числа в одно длинное целое. В этой статье блога будут рассмотрены несколько методов выполнения этой задачи и приведены примеры кода для каждого подхода. К концу вы получите четкое представление о различных методах преобразования коротких целых чисел в длинные целые числа в Excel VBA.
Метод 1: использование побитового сдвига и операций логического ИЛИ
Dim short1 As Integer
Dim short2 As Integer
Dim combined As Long
short1 = 32767 ' Example value for short1
short2 = 10000 ' Example value for short2
combined = CLng(short1) * 65536 + CLng(short2)
Метод 2: использование функции CDec
Dim short1 As Integer
Dim short2 As Integer
Dim combined As Long
short1 = 32767 ' Example value for short1
short2 = 10000 ' Example value for short2
combined = CLng(CDec(short1) * 65536 + short2)
Метод 3. Использование оператора сдвига влево (<<) и побитового оператора ИЛИ (|)
Dim short1 As Integer
Dim short2 As Integer
Dim combined As Long
short1 = 32767 ' Example value for short1
short2 = 10000 ' Example value for short2
combined = (CLng(short1) << 16) Or CLng(short2)
Метод 4: использование функции Cint и операций побитового сдвига
Dim short1 As Integer
Dim short2 As Integer
Dim combined As Long
short1 = 32767 ' Example value for short1
short2 = 10000 ' Example value for short2
combined = CLng(CInt(short1) * &H10000 Or short2)
Метод 5: использование функции StrConv и шестнадцатеричного представления
Dim short1 As Integer
Dim short2 As Integer
Dim combined As Long
short1 = 32767 ' Example value for short1
short2 = 10000 ' Example value for short2
combined = CLng("&H" & Hex(short1) & Hex(short2))
В этой статье мы рассмотрели несколько методов преобразования двух коротких целых чисел в длинное целое в Excel VBA. Используя операции побитового сдвига, логические операторы и функции преобразования типов, вы можете эффективно добиться желаемого преобразования. В зависимости от ваших конкретных требований и стиля кодирования вы можете выбрать метод, который лучше всего соответствует вашим потребностям.