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

Страницы: 1 2 3 След.
Как заставить команду Data\RefreshAll запустить макрос ?
 
Цитата
Sanja написал:
Вот туда и включите запуск нужного макроса.Если Сводной нет, то создайте пустую Сводную на скрытом листе
Классно!
Как заставить команду Data\RefreshAll запустить макрос ?
 
Добрый день!

Требуется, чтобы некий макрос книги запускался от ручной процедуры Data\RefreshAll . Понятно, что обратная задача, когда макрос запускает обновление, решается просто, но нужно именно так как спрашивается.
Спасибо.
VBS против Application.Run
 
testuser,

Спасибо! Попробую покопаться в теме с учетом вашего изложения.
Небольшое затруднение с объявлением объекта ListObject
 
Цитата
МатросНаЗебре написал:
Вот вам ещё одно корявое решение, но без перебора листов.Создаёте именованный диапазон уровня книги. Тогда к ListObject можно обратиться так

Спасибо, буду знать.

Тогда пожалуй я остановлюсь на таком варианте
Код
Set lo=НайтиИПрисвоить( ИмяТаблицы)
, где ф-ция НайтиИПрисвоить ищет тот самый лист с таблицей.
Изменено: tula19 - 19.06.2025 11:23:42
Небольшое затруднение с объявлением объекта ListObject
 
Добрый день.

Если я правильно понимаю, объект ListObject принадлежит объекту Worksheet. Поэтому он объявляется как
Set lo=ws.ListObjects(loName)
С другой стороны, каждый объект ListObject имеет уникальное имя в пределах одной книги, и вроде бы логичным напрашивается способ его объявления через объект Workbook. А то ведь что получается:  если я знаю имя таблицы, которую хочу объявить, то мне приходится в цикле пробегать по всем листам книги, пока не натолкнусь на тот, который содержит нужное имя. Решение выглядит как то коряво.
Изменено: tula19 - 19.06.2025 11:10:41
VBS против Application.Run
 
Цитата
Sanja написал:
Закрывайте открытые книги из основного макроса
Здорово.

А все таки, почему теряется связь, если книга закрывается макросом, не думали ?
VBS против Application.Run
 
Цитата
Sanja написал:
Лучше все это хранить в личной книге макросов или в надстройке
Понятно. Спасибо.

В таком случае я продолжу работать через VBS, там этих проблем нет. Это я ведь не для себя пишу код, а для коллег.
Изменено: tula19 - 19.06.2025 10:22:15
VBS против Application.Run
 
Цитата
BodkhiSatva написал:
не очень... выложи часть кода с запуском...
Так вот Sania привел "мой" случай, только у меня в конце макроса еще добавлено .Close
VBS против Application.Run
 
Цитата
Sanja написал:
А зачем такие сложности с макросами в разных файлах? Открыли в цикле очередную книгу - Обновили - Закрыли. Все это из одного макроса
Я использую макросы, потому что не все обработки такие простые, попадаются специальные случаи.
VBS против Application.Run
 
Sanja, Когда я добавил в ваш файл 1.xlsm строчку ThisWorkbook.Close ( как в моем случае) , то на этом процесс закончился.
VBS против Application.Run
 
BodkhiSatva, добавил комментарий к условию. Так понятнее ?
VBS против Application.Run
 
Добрый день.
Возникла задача последовательного запуска макросов из разных файлов. Сначала попробовал ее решить с помощью Application.Run, но потерпел неудачу, потому что после того, как первый из макросов завершал работу, процесс останавливался. Пришлось решать задачу с помощью скриптов VBS, где такой проблемы не возникало.

Вопрос такой: задачу принципиально нельзя решить с помощью Application.Run, или я просто чего то не так делаю?

Подробности:
- Application.Run запускается в цикле For
- действие макроса состоит в обновлении файла через RefreshAll и закрытии файла
Изменено: tula19 - 19.06.2025 09:54:57
VBA Знает ли макрос, какой внешний файл его запустил.
 
Здравствуйте.

При запуске макроса внешней программой, передается ли ему информация о вызвавшей его программе ?
PQ Как узнать имя таблицы по имени страницы
 
AlienSx, Спасибо!
PQ Как узнать имя таблицы по имени страницы
 
Здравствуйте.

Подскажите, есть ли в PQ функция, которая позволяет узнать имена таблиц на странице, имя которой известно.
PQ Как удалить пустые столбцы таблицы
 
Всем спасибо! Решение нашел на просторах Ютуба.
PQ Как удалить пустые столбцы таблицы
 
Здравствуйте!
Есть большая таблица с пустыми столбцами. Как эффективно обнаружить такие столбцы, чтобы удалить.
Изменено: tula19 - 10.02.2025 10:56:49
PQ Необъяснимо медленная выгрузка результата запроса на лист.
 
Интересно, это только у меня одного так, или у всех ?
извлечение текста между двумя знаками "-" и "/", есть текст, где повторяются "-" и "/" необходимо выбрать то, что находится между ними
 
ss= Split(текст,"/")
sq= Split( ss(0),"-")
слово=sq(ubound(sq))
Изменено: tula19 - 06.02.2025 12:28:47
PQ Необъяснимо медленная выгрузка результата запроса на лист.
 
nilske,
Цитата
nilske написал:
иногда достаточно просто закрыть файл с сохранением, не дожидаясь полного обновления запроса, а затем снова его открыть

вы знаете - не помогло
Изменено: tula19 - 06.02.2025 12:17:42
PQ Необъяснимо медленная выгрузка результата запроса на лист.
 
Привет.
Столкнулся со странным случаем.
Хочу получить на странице экселя список файлов из некоторой  директории. Пишу код
let
srs= Folder.Files( path ),
rem= Table.RemoveColumns( srs, {"Content"}
in rem

Файлов в папке path немного, поэтому обновление в редакторе запросов идет почти мгновенно, сохраняю ссылку запроса на листе и обнаруживаю, что он начинает страшно тормозить - образно говоря, цедит по одному файлу. Наудачу, добавляю в запрос строчку
let
srs= Folder.Files( path ),
rem= Table.RemoveColumns( srs, {"Content"},
out=Table.Skip(rem)
in out

- и все сразу начинает работать как положено - быстро. Причем это не зависит от того какую строку из таблицы удалять первую или последнюю - Table.RemoveLastN дает такой же результат.

Понятно, что дело не том, что из таблицы что-то удаляется, а просто в факте преобразования исходной таблицы ?
У кого нибудь есть идеи, почему такое имеет место быть ?
Спасибо
Изменено: tula19 - 06.02.2025 12:21:55
PQ Refresh All. В каком порядке выполняются запросы
 
voler83,

да, действительно, этой тема широко обсуждается. Спасибо.
PQ Refresh All. В каком порядке выполняются запросы
 
Интересуюсь в каком порядке выполняются запросы при команде Refresh All, если у запросов отключено фоновое выполнение.
Предположим есть "Запрос 1", результат которого сохранен в таблице "Запрос_1" и есть "Запрос 2", который берет данные из таблицы "Запрос_1". Так вот, как сделать, чтобы команда Refresh All заставляла сначала выполнять  "Запрос 1", затем обновлять таблицу "Запрос_1" и в конце выполнять "Запрос 2". Понятно, что задачу можно решить с помощью макроса, который будет запускать обновления в нужном порядке, но хотелось бы именно с помощью Refresh All.
Изменено: tula19 - 30.11.2024 10:17:55
PQ.Переставить столбцы таблицы за наменьшее число ходов.
 
AlienSx,

Это то, что надо!
Благодарю.
PQ.Переставить столбцы таблицы за наменьшее число ходов.
 
Цитата
AlienSx написал:
"Огласите весь список, пожалуйста!"

Вы меня раскусили - порядок следования букв задается отдельным списком. В нем может быть вплоть до 26 букв, если это английский.
PQ.Переставить столбцы таблицы за наменьшее число ходов.
 
Цитата
AlienSx написал:
вы ерунду какую-то пишете

Возможно. Только я там не вижу функции Table.ReorderColumns()  и еще кое каких.
Согласен, решение Артема на один шаг короче моего - он меняет только одну букву, а не две. Но предположим, что букв будет не три а четыре - тогда, что вы скажете ?
Изменено: tula19 - 22.11.2024 12:26:50
PQ.Переставить столбцы таблицы за наменьшее число ходов.
 
Цитата
Artem_1990 написал:
List.Sort(lst,(x)=>Text.Replace(x,"B","E"))

В конце должно остаться "В", а не "Е".
А так конечно, такая замена и у меня есть. Меня смущает что даже в компатных записях, приведенных выше насчитывается порядка 7 преобразований.
PQ.Переставить столбцы таблицы за наменьшее число ходов.
 
Цитата
sotnikov написал:
Text.Split(x,"B"),"Б")

Это смоторится лучше, чем мой подход через List.Zip
Спасибо
PQ.Переставить столбцы таблицы за наменьшее число ходов.
 
Цитата
AlienSx написал:
replacer = (txt) => ((chars) => chars{0} & Record.Field(rec, chars{1}))(Text.ToList(txt)),

Не скажу, что я понимаю эту запись. Надо подучиться.
Спасибо
PQ.Переставить столбцы таблицы за наменьшее число ходов.
 
Цитата
nilske написал:
А можно поделиться как это получается за 4 действия? Спасибо )

Если честно, у меня получилось за 9 действий ) привести можно конечно, но стыдно )
Страницы: 1 2 3 След.
Наверх