VBA Long (Приклад) | Покрокове керівництво щодо довгого типу даних у Excel VBA

Що таке довгий тип даних у VBA?

Long - це тип даних у VBA, який використовується для зберігання числових значень; ми знаємо, що ціле число також містить числові значення, але Long відрізняється від цілих, оскільки діапазон для зберігання даних дуже великий у випадку довгого типу даних, також тип даних, ми можемо також містити десяткові значення, це вбудований тип даних.

"Довгий", як говорить назва, він повинен містити значення чогось великого. “Long” - числовий тип даних у VBA Excel.

Довгий тип даних у Excel VBA може містити значення від 0 до 2, 147, 483, 647 для додатних чисел, а для від’ємного числа - від 0 до -2, 147, 483, 648.

Для типу даних VBA Long потрібні 4 байти пам’яті пам’яті вашого комп’ютера, це подвійне ціле число даних змінної пам’яті (2 байти) і половина подвійного типу даних змінної пам’яті (8 байт)

Я ніколи не бачив сценарію, коли я хотів би повністю використати ліміт типу даних VBA Long за свою коротку кар’єру. Але я покажу вам деякі приклади, щоб краще це зрозуміти.

Приклади довгого типу даних VBA

Нижче наведено приклади типу даних Excel VBA Long.

Ви можете завантажити цей шаблон VBA з довгими типами даних тут - Шаблон Excel з довгими типами даних VBA

Довгий приклад VBA №1

Як тільки ви оголосите тип змінної даних “Long”, ви можете призначити значення від -2, 147, 483, 648 до 2, 147, 483, 648.

Наприклад, оголосити змінну довгим типом даних.

Код:

 Sub Long_Example1 () Dim k Як Long End Sub 

Давайте призначимо значення як загальну кількість рядків аркуша.

Щоб отримати загальну кількість рядків у коді аркуша Excel, це „Рядки. Рахувати"

Код:

 Sub Long_Example1 () Dim k As Long k = Rows.Count End Sub 

Тепер покажіть значення у вікні повідомлення.

Код:

 Sub Long_Example1 () Dim k As Long k = Rows.Count MsgBox k End Sub 

Запустіть цей код і подивіться, скільки підраховується кількість рядків на аркуші.

Там сказано, що на аркуші ми маємо понад 1 мільйон рядків.

Тепер для кращого розуміння я зміню тип даних з LONG на INTEGER.

Код:

 Sub Long_Example1 () Dim k As Integer k = Rows.Count MsgBox k End Sub 

Якщо я запустив код VBA, я отримаю повідомлення про помилку як "Переповнення".

Причина, по якій ми отримали цю помилку у VBA, оскільки тип даних “Ціле число” може містити лише значення від -31768 до 32767. У цьому випадку “Рядки. Count ”поверне число, яке перевищує межу змінної“ ціле число ”.

Присвоєння значення більше 1 мільйона змінній, яка може вмістити лише 32767, спричиняє тут помилку переповнення.

Довгий приклад VBA №2

Знайдіть останній рядок, використовуючи довгу змінну

Пошук останнього використовуваного рядка аркуша є найважливішим із кодування. Для того, щоб знайти останній використаний рядок аркуша, потрібно вказати змінну. Хоча декларування змінної та призначення типу даних вимагає певного здорового глузду.

Припустимо, у вас є дані, які закінчуються на 25000 рядків, як показано на малюнку нижче.

Тепер я знаю, що останній використовуваний номер рядка - 25000, для цього нам не потрібен тип даних “LONG”, оскільки тип даних “INTEGER” може дати мені останній рядок.

Подивіться на код нижче для своєї інформації.

Код:

 Sub Long_Example1 () Dim k As Integer k = Cells (Rows.Count, 1). End (xlUp) .Row MsgBox k End Sub 

Якщо я запустив цей код, я отримаю останній використаний номер рядка робочого аркуша, над яким я працюю на даний момент.

Як програміст, важливо знати розмір даних, які ви матимете в майбутньому. Оскільки на даний момент дані можуть закінчуватися 25000-м рядком, але якщо дані збільшуються за межу “Ціле число”, тобто 32767, це спричиняє помилку переповнення.

Наприклад, я збільшу дані до 32768-го рядка.

Тепер, якщо я знову запущу той самий код, я не отримаю значення, а отримаю помилку, як показано нижче.

Пам'ятайте, що я збільшив ліміт лише на 1, перевищивши значення "Ціле число", тому я отримав помилку переповнення.

Тому важливо знати розмір ваших даних, перш ніж призначати тип даних змінній. Завжди кращий варіант оголосити змінну як “LONG”, не думаючи про розмір ваших даних у майбутньому.

Альтернативи довгої змінної Excel VBA

Ви, мабуть, вже думаєте про те, що, якщо ми хочемо утримувати значення більше, ніж межа довгої змінної. Для цього нам потрібно використовувати різні типи даних, тобто VBA “String” або “Variant”

Пам'ятайте, як тільки він перетне число 2147483647, ми отримаємо помилку переповнення у VBA з типом даних LONG. Щоб зберегти більше цього числа, нам потрібно використовувати тип даних "Рядок" або "Варіант".

Для рядка

Код:

 Sub Long_Example2 () Dim k As String k = 2147483648 MsgBox k End Sub 

Для Варіант

Код:

 Sub Long_Example2 () Dim k як варіант k = 2147483648 MsgBox k End Sub 

Коли ми запускаємо наведені вище коди, він відображатиме згадане число.