Страницы: 1
RSS
Переменная в адресе диапазона Range (VBA), как обратиться не по адресу ячейки, а через переменную?
 
Добрый день, уважаемые форумчане.

Прошу помощи.

Имею работающую форму, listbox которой нужно заполнять диапазоном из Книги, хранящейся в другом файла Excel. Указывая диапазон строго - ListBox заполняется корректно. Указываю так:
Код
    Me.ListBox_tyres.RowSource = wb.Sheets(2).Range("D7:K10").Address
Но мне, после определенного перебора строк и отбора значений требуется заполнить ListBox результатами отбора. На простом языке, нужно вместо  прямого указания ячеек "D7:K10" задать ссылку на диапазон в виде wb.Sheets(2).Range("D"&i:"K"&n).Address, где i и n - переменные. Но такой синтаксис выдаёт ошибку. Поправьте меня пожалуйста? Как можно обратиться диапазону (ячейкам) по переменной?
 
посмотрите как ссылка на этот же диапазон выглядит в формуле, а потом скопируйте ее в RowSource
и почитайте, на всякий случай, может-ли RowSource ссылаться на другую книгу
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Текст должен быть в кавычках, переменные — нет: Range("D" & i ":K" & n)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
.Range("D" & i & ":K" & n)
 
asesja, спасибо — пропустил амперсанд  :)  :idea:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Прежде всего, большое спасибо за участие и такую быструю реакцию!

Что-то по-прежнему и принимает
Скрытый текст

Ссылается именно на эту строку. Но при явном указании диапазона, без переменных - макрос работает.
Изменено: LexaBukreev - 27.10.2023 04:51:07
 
Файл-пример приложите
Согласие есть продукт при полном непротивлении сторон
 
Цитата
LexaBukreev написал:
Что-то по-прежнему и принимает
ваш вопрос
Цитата
LexaBukreev написал:
Переменная в адресе диапазона Range (VBA), как обратиться не по адресу ячейки, а через переменную?
на него ответили, а вот что вы хотели этим сказать,
Цитата
LexaBukreev написал:
Me.ListBox_tyres.RowSource = wb.Sheets(2).Range("D7:K10").Address
, отсалось за рамками . Собственно вы текст преобразуете сложным образом в практически тот же текст. А смысл?
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх