Назначение диапазона массиву довольно просто. Тем не менее, я нашел случай, когда VBA вел себя неожиданно. Я не мог найти ответ, почему это так, и поэтому я надеюсь, что кто-то может объяснить мне, почему он не работает.Назначение диапазона для массива с использованием «With .. End With»
Задача: Назначьте диапазон (от открытой Workbook) в массив
Рабочий код
Dim vrtTabOEen() as Variant
Dim rngTabOEen as Range
With ThisWorkbook.Worksheets(Name_AB_Tab_Def_OEen)
Set rngTabOEen = .Range(Name_Tab_Def_OEen)
vrtTabOEen = rngTabOEen
End With
Номера Рабочий код
Dim vrtTabOEen() as Variant
With ThisWorkbook.Worksheets(Name_AB_Tab_Def_OEen)
vrtTabOEen = .Range(Name_Tab_Def_OEen)
End With
С помощью нерабочий код, я получу ошибку 13: Тип несоответствия.
Вопрос Почему я должен назначить целевой диапазон переменной типа «диапазон» до создания массива из него?
Спасибо, Рори, это сработало. Хотя я не понял начало вашего первого предложения. «Уровни косвенности», а также «неявное принуждение» мне не известны. Посмотрите на них – AndyP