Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх

Рядок дана записується на самому початку модуля, найпершою рядком. Перед цим рядком нічого більш не може бути записано, крім, хіба що інших подібних рядків (є ще інші :-))

Але на цьому корисність цього рядка не закінчується. Нижче наведено простий код:

Запустіть код. І що ж бачите? Бачите повідомлення, показане на рис.1 і виділену змінну "а", в останньому рядку. Що це означає? Це означає, що змінна "а" у нас не оголошена. А все тому, що першим рядком (Dim a As String) я оголосив змінну англійською мовою, а в останньому рядку я записав її на російській. А для коду це різні символи. Якщо розглядати логіку роботи VBA - першу "а" він бачить як змінну з присвоєним типом String. І їй ми задаємо значення "Привіт від www.excel-vba.ru". А другу. Другу він не знаходить в оголошених змінних, не знаходить у функціях і сам инициализирует її як нову змінну з типом даних Variant. І, що цілком логічно, зі значенням Empty. тобто нічого, тому що цієї змінної ми ніяких значень не надавали.

А тепер уявіть собі, що Ви написали купу довгого коду, рядків на 100 або більше. Звичайно, Option Explicit Ви не використовуєте. І ось Ви тестируете код, але він працює як-то не так. Десь щось не так виконується. І Ви починаєте покроково колупатися в лістингу і шукати помилку. Але ж все може бути і простіше: десь в коді Ви могли банально опечатали і привласнити таким чином значення змінної, на яку Ви і не розраховували. А якщо використовувати Option Explicit. то така помилка буде відразу виявлена ​​ще до виконання коду і, що не менш важливо - підсвічена. Так що Вам навіть не доведеться її шукати, а залишиться лише виправити помилку.

Так само цей рядок допоможе уникнути неявних помилок і в інших ситуаціях. Зокрема, при зверненні до інших додатками (Word, Outlook і т.д.). Наприклад, в Excel застосовуються іменовані константи для багатьох завдань. Одна з найпоширеніших - пошук останньої клітинки в стовпці: llast = Cells (Rows.Count, 1) .End (xlUp) .Row
тут xlUp є іменованою константою, значення якої дорівнює числу: -4162. В інших додатках такий же підхід. Це позбавляє від необхідності пам'ятати на пам'ять все значення констант і звертатися до них за допомогою intellisense. Але діють ці константи виключно всередині свого застосування (можете звернути увагу, у Excel константи починаються з xl. А у Word - з wd). І тому оголошені ці константи в інших додатках - Excel про них не знає (як і інші програми не знають про константи Excel). Для прикладу візьмемо простий і робочий код заміни в Word:

  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх
  • Variable not defined або що таке option explicit і навіщо воно потрібне, excel для всіх

Пошук по мітках

Поділіться своєю думкою