вызов функции листа Excel из ячейки excel

У меня есть набор определяемых пользователем функций vba, которые находятся в модуле excel, которые затем вызываются из электронной таблицы excel ... на этом этапе все работает нормально.

Меня попросили переместить vba из модуля на кодовую страницу рабочего листа. Когда я это сделал, я обнаружил, что не могу вызывать какие-либо функции из ячеек на листе ... имена просто не отображаются как существующие. Есть ли способ вызвать функции рабочего листа из ячейки Excel? Также, {номер возврата * 2; } int main () {cout << DoubleNumber (8); } ...

По словам моего учителя, писать пользовательские функции, как это, является плохой практикой:

int DoubleNumber(int Number)
{
    return Number * 2;
}

int main()
{
    cout << DoubleNumber(8);
}

Вместо этого он говорит всегда использовать форвардные объявления, даже если функции не нужны какие-либо знания друг о друге:

int DoubleNumber(int Number); // Forward declaration.

int main()
{
    cout << DoubleNumber(8);
}

int DoubleNumber(int Number) // Implementation.
{
    return Number * 2;
}

Я нахожу это особенно странным, так как он подчеркнул важность того, чтобы предварительное объявление и реализация были в точности одинаковыми, иначе вы получите ошибки. Если это так важно, почему бы просто не поставить все это выше main () ?

Итак, действительно ли это плохая практика - объявлять и реализовывать одновременно? Это вообще имеет значение?

7
задан Maxpm 8 December 2010 в 19:06
поделиться