Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Переменной типа Range не присваивается адрес из другой книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Переменной типа Range не присваивается адрес из другой книги (Макросы/Sub)
Переменной типа Range не присваивается адрес из другой книги
Almost Дата: Вторник, 20.12.2016, 17:48 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!
Пишу макрос импорта данных из другого файла Excel. Открывается источник, книга присваивается переменной book2, и определённый адрес в ней нужно передать переменной, чтобы ориентируясь на него определить расположение импортируемых диапазонов.
Адрес определяется верно:
[vba]
Код
MsgBox (book2.Names("CompsStart").RefersToRange.Offset(3, 0).Address)
[/vba]

Но присваиваться не хочет (SourceAdr объявлена как Range):
[vba]
Код
SourceAdr = book2.Names("CompsStart").RefersToRange.Offset(3, 0).Address
[/vba]

Пример во вложении. Открывать "test", по кнопке выбрать "test2". В чём подвох?
Заранее спасибо.
К сообщению приложен файл: test.xlsb (15.1 Kb) · test2.xlsb (7.2 Kb)
 
Ответить
СообщениеЗдравствуйте!
Пишу макрос импорта данных из другого файла Excel. Открывается источник, книга присваивается переменной book2, и определённый адрес в ней нужно передать переменной, чтобы ориентируясь на него определить расположение импортируемых диапазонов.
Адрес определяется верно:
[vba]
Код
MsgBox (book2.Names("CompsStart").RefersToRange.Offset(3, 0).Address)
[/vba]

Но присваиваться не хочет (SourceAdr объявлена как Range):
[vba]
Код
SourceAdr = book2.Names("CompsStart").RefersToRange.Offset(3, 0).Address
[/vba]

Пример во вложении. Открывать "test", по кнопке выбрать "test2". В чём подвох?
Заранее спасибо.

Автор - Almost
Дата добавления - 20.12.2016 в 17:48
Саня Дата: Вторник, 20.12.2016, 17:56 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
присваивание объектной переменной:

[vba]
Код
set rngVar = workbooks("имя_книги").worksheets("имя_листа").range("адрес_или_имя_диапазона")
[/vba]
 
Ответить
Сообщениеприсваивание объектной переменной:

[vba]
Код
set rngVar = workbooks("имя_книги").worksheets("имя_листа").range("адрес_или_имя_диапазона")
[/vba]

Автор - Саня
Дата добавления - 20.12.2016 в 17:56
Almost Дата: Вторник, 20.12.2016, 18:06 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Саня,
Благодарю за оперативный ответ. Я пробовал присвоить через set, но ловлю ошибку Type mismatch и выделенный жёлтым [vba]
Код
.Address
[/vba]Фиксированные имя листа и адрес диапазона не подойдут, поскольку необходима защита от переименования листа и изменения расположения диапазона в результате доработки форм.
 
Ответить
СообщениеСаня,
Благодарю за оперативный ответ. Я пробовал присвоить через set, но ловлю ошибку Type mismatch и выделенный жёлтым [vba]
Код
.Address
[/vba]Фиксированные имя листа и адрес диапазона не подойдут, поскольку необходима защита от переименования листа и изменения расположения диапазона в результате доработки форм.

Автор - Almost
Дата добавления - 20.12.2016 в 18:06
Pelena Дата: Вторник, 20.12.2016, 18:09 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19186
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Адрес - это строковая величина, а не Range
SourceAdr as String


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеАдрес - это строковая величина, а не Range
SourceAdr as String

Автор - Pelena
Дата добавления - 20.12.2016 в 18:09
Almost Дата: Вторник, 20.12.2016, 18:12 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Pelena, Понял, спасибо, заработало!
 
Ответить
СообщениеPelena, Понял, спасибо, заработало!

Автор - Almost
Дата добавления - 20.12.2016 в 18:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Переменной типа Range не присваивается адрес из другой книги (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!