Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Использование столбца таблицы в качестве массива для ИНДЕКС
 
Здравствуйте!
Подскажите, можно ли использовать название столбца "умной таблицы" в качестве первого аргумента (массив) в ИНДЕКС? Если да, то что я делаю не так? Если нет, прошу подсказать способы решения задачи.
Файлик с описанием проблеммы прилагаю.
Спасибо.

UPD: В примере на листе несколько таблиц. Если оставить одну, то ситуация не меняется. Если добавить к названию столбца назавание таблицы, проблемма тоже не уходит.
Изменено: V.Mozzhukhin - 03.09.2020 19:10:21
Копирование строки и ее вставка в Умную таблицу макросом
 
Здравствуйте, Люди!

Есть книга, в ней лист, на листе ячейки для ввода инфы, строка куда инфа из ячеек консолидируется, макросом строка копируется и вставляется в Умную таблицу. Всё банально, благодаря Примерам Павлова. На этом банальности, для меня, человека несведущего, заканчиваются.
Проблема в том, что хотелось бы в умной таблице видеть строку итогов, но при включенных итогах макрос вставляет скопированное мимо Умной таблицы, ниже этих самых итогов. Прописал в макросе отключение итогов и преобразование таблицы в диапазон (без преобразования в диапазон, скопированное к Умной таблице не "приклеивалось") и всё заработало. Но ведь если для ListObjects("Table1").* есть .Select, .Add и .Delete должно же быть и .Paste.
Поможите, не откажите, не местные мы!
Код и файлик для экспериментов ниже.
Код
Sub Add_Buy()
'    Worksheets("Новая закупка").ListObjects("Закупка").ShowTotals = False
'    Worksheets("Новая закупка").ListObjects("Закупка").Unlist
'    n = Worksheets("Новая закупка").Range("A100000").End(xlUp).Row
    Worksheets("Новая закупка").Range("A13:I13").Copy
'    Worksheets("Новая закупка").Cells(n + 1, 1).PasteSpecial Paste:=xlPasteValues
'
'   Здесь должно быть нечто типа
   Worksheets("Новая закупка").ListObjects("Закупка").ListRows.Add AlwaysInsert:=True
'   но для вставки в Умную таблицу ранее скопированного.
'
    Worksheets("Новая закупка").Range("C5,C7,C9").ClearContents
'    Worksheets("Новая закупка").ListObjects.Add(xlSrcRange, Range("$A$17:$I$" & n + 1), , xlYes).Name = "Закупка"
'    Worksheets("Новая закупка").ListObjects("Закупка").TableStyle = "TableStyleMedium6"
'    Worksheets("Новая закупка").ListObjects("Закупка").ShowTotals = True
    Range("C5").Select
End Sub

Источник данных для выпадающего списка ActiveX из Умной таблицы
 
 Здравствуйте, Люди умные. И добрые Люди тоже здравствуйте.

Есть книга с десятком листов, пятком макросов, несколькими списками в один столбец, для удобства наполнения преобразованными в Умные таблицы, и с несколькими другими Умными таблицами в которых используются выпадающие списки созданные с помощью Данные - Проверка данных. Есть, скажем так, итоговая Умная таблица, в которой все данные в итоге консолидируется, получается некая база данных и по которой в итоге строится Сводная таблица. С этим всё легко и просто, всё работает, всё подробно описано здесь (Умные таблицы), здесь (Выпадающие списки), здесь (Создание базы данных в Excel) и здесь (Создание отчетов при помощи сводных таблиц).
На одном из этапов внесения данных используются формы ввода с выпадающими списками созданными так же с помощью проверки данных, но хотелось бы некоторые выпадающие списки сделать на основе элемента ActiveX, чтобы получить возможность быстрого поиска элементов по первым буквам. Вот тут как раз и появилась загвоздка. Если в свойствах элемента ActiveX в параметре ListFillRange прописать диапазон в виде "Лист!A1:A100", то всё работает, но имеем известные неудобства в виде необходимости изменять диапазон в случае пополнения списка выбора. С запасом делать тоже не вариант, потому как в выпадающем списке будут отображаться и пустые элементы. Если в параметре ListFillRange прописать именной диапазон созданный с использованием функций СМЕЩ(OFFSET) и СЧЁТЗ (COUNTA), то тоже всё работает. Если же в  ListFillRange прописать диапазон данных пользуясь свойствами Умной таблицы в виде "'Лист'!ИмяТаблицы[ИмяСтолбца]" или же указать имя именного диапазона созданного с помощью свойств умной таблицы, то после нажатия Enter поле ListFillRange очищается  и выпадающий список остается пустым. Колдовство с кодом тоже не дало мне положительных результатов. Возможно, где-то ставлю не тот значок или не ту буковку. Знаний, увы, не хватает. Использование в ListFillRange свойств Умной таблицы, а не диапазона созданного с помощью функций СМЕЩ(OFFSET) и СЧЁТЗ (COUNTA), если это всё же возможно как описано здесь, позволяет избежать лишних операций по созданию дополнительных именных диапазонов. Помогите, пожалуйста, разобраться. Файл для экспериментов прилагается.

С Уважением, Виктор.
Страницы: 1
Наверх