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

Страницы: 1
Что быстрее именованные диапазоны или умные таблицы
 
Добрый день!
В месте где я работаю на моей должности используется большой экселевский файл, в который выгружается информация из БД порядка ~60 столбцов, плюс правее еще столько же столбцов, в которых записано куча формул с ВПР, СУММЕСЛИМН и подобными.
Количество строк в файле при этом может достигать и значений в 50000, т.е. итого порядка 6 млн. рабочих ячеек
Сейчас занимаюсь оптимизацией всего этого, т.к. местами работать стало невозможно.
При работе есть необходимость использовать именнованные диапазоны на столбцы для читабельности формул.

И собственно вопрос: что потенциально с таким количеством данных будет работать быстрее умная таблица или именованные диапазоны? Если именованные диапазоны, то какие: динамические или целый столбец = именованный диапазон?

Заранее спасибо за ваши ответы)
Изменено: BapuK - 22.07.2020 08:34:11
Необходимо переписать макрос выгрузки из access в excel
 
Всем привет
Имеется файл Excel, в который из базы Access макросом копируется часть данных из нужной таблицы с необходимыми фильтрами.
Внизу кусок кода, который за это отвечает.

Проблемы, которые хочется решить:
1) Файл не работает на 64-разрядной версии (а хочется, чтобы работал)
2) Файл не работает на версии Excel выше 2013 года (а хочется, использовать последнюю версию Excel)
3) На некоторых компьютерах файл иногда зависает, когда база Access и файл Excel лежат на сетевом диске, а не на диске компьютера

Если попробовать поменять версию, на ту, которая не соответствует одному из параметров, то Excel выдает ошибку ODBC 1004 на предпоследней строке кода

Можно переделать полностью базу Access, т.к. я подозреваю, что она тоже не оптимальна, т.к. сделана лет 7 назад, только данные обновляются ежедневно
Можно полностью переписать код макроса.
Подскажите что лучше сделать или подскажите что лучше почитать, чтобы это сделать самостоятельно?)

Комментарии по коду: переменные MySource, MyTable, MySelection, MyFilter определяются выше
MySource - путь к текущей папке, где лежит файл Excel и база Access
MyTable - Таблица в базе Access
MySelection - Имя одного из столбцов таблицы
MyFilter - одно из значений, которое может встретиться в столбце MySelection

P.S. использовать PQ не предлагать, нужна именно выгрузка значений из базы Access, чтоб потом их обрабатывать формулами, которые неудобно использовать в умных таблицах.
Код
With Sheets("Лист1").Cells(1, 1).QueryTable
.Connection = "ODBC;DBQ=" & MySource & "\Base.mdb; Default Dir=" & MySource & _
";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;MaxBufferSize=2048;MaxScanRows=8;" & _
"PageTimeout=5;ReadOnly=1;Safe Transactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"
.CommandText = Array( _
"SELECT ", _
"`Столбец1`, `Столбец2`,`Столбец3`" _
& Chr(13) & "" & Chr(10) & _
"FROM " & MyTable & Chr(13) & "" & Chr(10) & _
"WHERE (" & MySelection & "='" & MyFilter & "')" _
)
.Refresh BackgroundQuery:=False
End With
Изменено: BapuK - 18.01.2020 13:13:02
Принудительный пересчет книги
 
Добрый день.
Подскажите как с помощью макроса заставить пользователя дождаться пересчета книги?
Макрос расставляет много формул в большое количество ячеек и когда макрос заканчивает свою работу и можно уже менять значения в ячейках и многое другое, но формулы еще не посчитались.
Добавление строки Application.Calculate в конец макроса не помогает - макрос заканчивается раньше чем пересчет книги.
Имя столбца с наименьшим значением PQ
 

Добрый день.
Наткнулся на следующую проблему, задача похожая как в ссылке:

https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=95733

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

Научился делать отдельный список из имен столбцов, но дальше дело зашло в тупик  :(

Пример во вложении.

Суть вопроса: как изменить вычисление столбца "КтоМолодец":

Код
=ФИО{List.PositionOf({[Вася],[Коля],[Маша],[Петя]},[МаксСумма])}

так, чтобы, если добавится новый человек,то не нужно было менять код?

Изменено: BapuK - 08.11.2018 17:41:12 (забыл вложение)
Ошибка Out of range при работе с динамическим массивом
 
Добрый день.

Разбираюсь с динамическими массивами. Связал кнопку с макросом, после нажатия на нее вылетает указанная ошибка.
Код:
Код
Sub Knopka_Click ()
 Dim test
 test = Range("E2:E22")
 ReDim Preserve test (21)
 Range ("B6").Value = test(4)
End Sub
Ошибка вылетает уже на 4 строке, не пойму что не так делаю, в ячейках E2:E22 записаны числа, ячейка B6 - пустая.
Вместо ReDim Preserve test (21) пробовал уже:
ReDim Preserve test (0 to 21)
ReDim Preserve test (1 to 21)
ReDim Preserve test (1 to 22)

Ошибка все та же.
Страницы: 1
Наверх