Страницы: 1
RSS
VBA ListBox: поле RowSource отвергает функцию INDIRECT на этапе разработки
 
Уважаемые, комрады!

Не подскажете ли, что можно сделать, чтобы обойтись вот без такого извращения:
Код
Private Sub UserForm_Activate()
  lbSpecs.RowSource = Replace(lbSpecs.RowSource, "ДВССЫЛ", "INDIRECT")
End Sub 
Без этого листбокс показывает данные в режиме разработчика, но ничего не показывает в режиме исполнения.
В rowsource у меня следующее =ДВССЫЛ("TBL_SPEC_DB"). Это умная таблица.
Руками прописать INDIRECT не даёт... принимает только ДВССЫЛ.
с уважением,
Батьянов Денис
 
приложите файл (пример)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Легко сказать...
с уважением,
Батьянов Денис
 
Заполнить из массива.
 
В таком случае, мой костыль изящнее вашего :)
с уважением,
Батьянов Денис
 
Я о том, что не использовать .RowSource, заполнить .list
А если все с шапкой, можно без создания массива:
Код
lbSpecs.List = wsSPEC.UsedRange.Value

Но при этом следить, чтобы совпадало количество столбцов.
 
Цитата
vikttur написал: Я о том, что не использовать .RowSource, заполнить .list
Я бы хотел разобраться, как правильно использовать RowSource. Например, у меня есть другой файл, в котором успешно прописана в rowsource функция INDIRECT и всё работает, но как я это сделал я не помню совершенно.
с уважением,
Батьянов Денис
 
О List дополнил выше
 
Спасибо, этот путь мне ясен, но может быть кто-то сможет объяснить причины описанного поведения Excel и способ, как убедить IDE принять INDIRECT.
с уважением,
Батьянов Денис
 
есть язык вба, есть язык формул - вы кого с кем хотите скрестить и для чего... по данному вопросу самый оптимальный Кодовый вариант - от vikttur... лучше сразу делать граммотно [т.е. оптимально], чем потом маяться со своим RowSource... кодом - значит кодом, формулами - значит формулами
Цитата
dsb75 написал: мой костыль изящнее вашего
для вас? или для XL'я? вы будете исполнять этот код? или XL? - ему массивом удобнее (если из кода)...
Изменено: JeyCi - 26.03.2017 08:15:33
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал:
есть язык вба, есть язык формул - вы кого с кем хотите скрестить и для чего..
Если бы вы внимательно вникли в написанное, то вам бы стало ясно, что я пытался действовать формулами.

Цитата
JeyCi написал:
для вас? или для XL'я? вы будете исполнять этот код? или XL? - ему массивом удобнее (если из кода)...
Это что за сектантство? :) Я действую тем путём, который эффективен с точки зрения моих трудозатрат и позволяет достигать цели.
с уважением,
Батьянов Денис
 
А зачем там вообще ДВССЫЛ (или INDIRECT)? Просто в строку свойства RowSource впишите название Вашей таблицы без всяких равно формул и кавычек
Изменено: Sanja - 26.03.2017 09:05:53
Согласие есть продукт при полном непротивлении сторон
 
Матерь божья, точно! Спасибо!
с уважением,
Батьянов Денис
Страницы: 1
Наверх