Итог:
- При работе с объектами используйте
Set
.
- При обработке данных примитив (целые, длинные, строки *, варианты *) вы не используете его.
Sheet
, Workbook
, Range
, являются объектами. Поэтому вам нужно использовать Set
при назначении их переменным.
A Range.Value
возвращает вариант (это может быть long, строка и т. Д.). Таким образом, вы не можете использовать Set
.
==========================
Теперь о вашем сообщении об ошибке ... Я бы сказал, что, возможно, раньше в вашем коде Cell
объявляется как объект . Попробуйте использовать другое имя переменной или проверьте тип переменной Cell.
Чтобы проверить это, щелкните правой кнопкой мыши и выберите «Определение». Объявите его как Variant
, чтобы решить проблему (однако помните о возможных побочных эффектах).
==========================
* Я знаю, что эти типы не «примитивны»; Я использовал в качестве примера здесь для чистоты объяснения.