Динамически заполнить список - исключить пустые ячейки - PullRequest
0 голосов
/ 22 апреля 2010

Я создаю форму в Excel (не пользовательскую форму) и заполняю список с помощью ячеек. Тем не менее, эти ячейки иногда A1: 10, а иногда они A1: A4. Есть ли способ динамически изменить то, что показано в списке?

Прямо сейчас, когда я использую A1: 10 и заполнено только 4 ячейки, я получаю список из 4 заполненных ячеек, за которыми следуют 6 пустых записей. Я хотел бы избавиться от 6 пробелов, когда их всего 4.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2015

Вы можете создать именованный диапазон, используя динамическую формулу. Будет работать любая из приведенных ниже формул.

=A1:INDEX($A$1:$A$10,MATCH("",$A$1:$A$10,0)-1)

=OFFSET($J$7,0,0,MATCH("",$J$7:$J$32,0)-1)

Чтобы создать именованный диапазон, нажмите Ctrl + F3, затем нажмите кнопку «Создать», вставьте один из двух параметров выше в раздел «ссылается на:», затем пометьте новый диапазон, как хотите. в разделе «источник строки» списка просто введите имя, выбранное для нового именованного диапазона.

0 голосов
/ 20 сентября 2013

К сожалению, это скорее обходной путь, чем решение. Тем не менее, он может делать то, что вам нужно. Я ударил по той же стене, что и вы, пытаясь сделать диапазоны динамическими.

Не видя некоторого кода, чтобы точно знать, что вы делаете, попробуйте что-то вроде этого.

Private Sub ListBox1()
    x = 1
    'Add items to listbox until you reach an empty cell.
    Do while Cells(x,1) <> ""
        ListBox1.AddItem Cells(x,1)
    Loop

Я не очень знаком со списками вне пользовательских форм, но это должно делать примерно то, что вы хотите.

Отредактируйте исходное сообщение с помощью своего кода, чтобы мы могли лучше понять, что вы пробовали и что вы пытаетесь сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...