2013-03-30 3 views
0

Я пытаюсь написать пару строк кода в VBA для excel, вот как выглядит версия кода VB.Net.VBA-массивы и операторы

  ThisVariable <<= 8 

     Variable.Add(ThisVariable) 

Как написать эти строки кода в VBA? У VBA нет оператора «< < =» и не имеет свойства .Add массива. Любая помощь будет принята с благодарностью.

ответ

2

Для первого вопроса VBA не имеет встроенного сдвига битов, но вы можете добавить функцию, которая сделает это за вас. Try this one.

Для второго вопроса, чтобы увеличить размер массива, вы должны использовать команду ReDim. Here's the info on that.

Кроме того, вы можете использовать коллекцию вместо массива. С помощью коллекции вы можете добавить & удалить элемент в нем по желанию.

Успехов

1

<<= влево сдвигает число на 8 двоичных разрядов, т.е. умножает число на 256. Для добавления что-то в массив вы можете повторно затемнить массив:

ThisVariable = ThisVariable * 256 
Dim U As Long 
Dim L As Long 
L = LBound (Variable) 
U = UBound (Variable) 
ReDim Preserve Variable (L To U+1) 
Variable (U+1) = ThisVariable 

Примечание что переназначение массива только для добавления элемента не очень эффективно. Вы должны попытаться найти другой подход (например, использовать больший массив и сохранить количество «действительных» элементов в переменной счетчика - или даже создать для него модуль класса).

Смежные вопросы