Переводчик VBA останавливается, по-видимому, без причины

Я использую некоторые функции в Excel с помощью VBA. Вот мой код:

Function PresentValue2() Dim i As Double i = 1 Dim coll As Collection coll.add i PresentValue2 = coll.Item(1) End Function 

Я сделал точку останова, и intrereter просто остановился на команде coll.add i и функция вернула значение «#VALUE!».

Почему это?

Я добавляю ту же проблему с динамическим массивом

Коллекция – это объект. Вам необходимо создать экземпляр, прежде чем использовать его. Например, Dim col1 as Collection Set col1 = Новая коллекция col1.add "item"

Учитывая, что ваша функция, похоже, хочет «сохранить» значение и проверить его, это все равно вызовет проблемы, потому что вы создаете новую коллекцию каждый раз при вызове этого метода. Вам нужно будет объявить и создать экземпляр коллекции вне вашей функции и использовать ее так:

 Dim col1 as New Collection Function PresentValue2 as Double Dim i as Double i = 1 col1.add i 'rest of your code here and return value '.... End Function 

Вам не хватает набора :

 Function PresentValue2() Dim i As Double i = 1 Dim coll As Collection Set coll = New Collection coll.Add i PresentValue2 = coll.Item(1) End Function 
Interesting Posts

Суммируйте по листам (если ячейка x равна ячейке y)

Преобразование и копирование значения из внешнего файла csv

Дополнительные текстовые поля отображаются в файле csv, экспортированном из отчета SSRS.

Относительные пути для файла VBScript

system.diagnostics.process не откроет файл Excel без открытия Excel сначала

Импортируя файл excel в r с помощью gdata, данные отображаются как «Общие»,

Excel VBA – поиск уникальных значений ни одной скрытой ячейки

VSTO 4 & C # NamedRange.RefersToRange throws Com Исключение при большом диапазоне

SSRS – MERGE external excel Документы с Сгенерированным отчетом?

Как вернуться в поле «Сохранить сообщение» при нажатии «Нет» для замены файла

Ошибка макрокоманды Excel Macro

Как читать диапазон ячеек (например, A1: G30) из файла Excel в GridView

Как активировать рабочий лист в Excel, где имя вкладки является динамическим

Отправка электронной почты с помощью Outlook с скопированными диапазонами и встроенными диаграммами

Использование VBA с excel 2007 для сравнения числа, хранящегося в строке, в ячейке, содержащей номер, отформатированный как текст

Давайте будем гением компьютера.