Сохранение и восстановление фильтров VBA в таблицах - проблемы с датами, Написал макрос , вроде работает , но как разобраться с фильтрами по датам не понимаю
ActiveWorkbook.CustomViews.Add ViewName:="TempView", RowColSettings:=True
' -------------------------------------------------
' Отключаем фильтр и выполняем необходимые действия
' -------------------------------------------------
ActiveWorkbook.CustomViews("TempView").Show
Это решение менее трудоемко, чем иные. Можно попробовать.
Сохранение и восстановление фильтров VBA в таблицах - проблемы с датами, Написал макрос , вроде работает , но как разобраться с фильтрами по датам не понимаю
написал: предполагаю что мелкософт не ответит на большинство вопросов типа : что такое скрытая строка - это строка скрытая фильтром или строка которой задана высота 0 , и как сработает если два условия (при обновлении) изменили свои значения ?
Мы сами можем попробовать ответить,что запоминается о фильтре при сохранении представления (Custom View). Пример. Выставляем фильтр по первому столбцу - значение больше 2. Сохраняем представление, сохраняем файл и смотрим (\xl\worksheets\sheet1.xml) :
Тимофеев написал: потому что запись (140) для Excel это -140
Дополню ответ коллеги.
Диалог "Найти и заменить" имеет некоторые особенности реализации.
После замены новое значение (текст) обрабатывается так, как в случае, когда пользователь непосредственно вводит этот текст в ячейку. Например, если Вы введете в пустую ячейку, не имеющую текстовый формат, (140) то в результате в ячейку будет записано число -140 Соответственно, это значение и проставляется после Вашей замены. Самое печальное, что, в отличие от непосредственного ввода пользователем значения ячейки, диалог игнорирует "текстовый" формат ячейки.
поскольку в структурах файлов Excel применяются исключительно настройки в локализации en-US. В системе Windows для локализации ru-RU код формата будут показан как
Код
[Цвет10]# ##0;[Красный](# ##0);
О какой конкретно проблемной системе MS Windows и версии Microsoft Excel идет речь?
В исходном примере тип условного форматирования - трехцветная шкала. Перейдите в диалог редактирования правила. Укажите Тип: Формула для всех трех цветов и введите тексты формул, при истинности которых ячейки будут покрашены соответствующим цветом. Формулы могут использовать любые ячейки строки.
Причина проблемы - неправильно указан диапазон, к которому применяется второе правило условного форматирования. Диапазон должен начинаться не со второй строки (это заголовок), а с третьей.
ПавелW написал: так в данном случае отрабатывает корректно:
При сравнении дробных чисел не следует использовать знак равенства. Можно писать так: ABS(A1 - B1 - C1 - D1) < 1E- 10 где правая часть подбирается в зависимости от специфики задачи.
Опишите, пожалуйста, точную последовательность действий, приводящих к проблемной ситуации. Я произвел следующие действия: 1. Открыл пример из стартового сообщения 2. Перешел на лист "Компания1" и в ячейку Q17 занес значение "Счет" 3. Исправил в коде макроса "SortFields.Add2" на "SortFields.Add" (метода Add2 в моей версии Excel 2016 нет). 4. Вернулся на лист "ГРАФИК ПЛАТЕЖЕЙ" и нажал кнопку "Добавить запись в график платежей". Сформировалась новая запись, в которой шрифт ячейки K5 (дата 14.02.1900) имеет красный цвет. 5. В ячейке O5 изменил значение на "Оплачен". Фон всех ячеек строки изменился, шрифт в K5 имеет красный цвет.
Я еще раз предлагаю Ввм педантично выполнить те же самые действия с тем же присланным Вами архивом в той же папке, что и я в сообщении #9. Точно так же по пунктам сообщите результаты. Если какой-то из результатов отличается от моего, то сохраните проблемный файл (файлы) и вложите в сообщение (как я в #11).
tony0303 написал: И так происходит только на версиях с 2016
В Реестре Windows настройки MS Office разных версий хранятся отдельно. Возможно, у Вас что-то "испортилось" для версии 2016. Сотни тысяч пользователей MS Excel 2016 в России (и мире) не согласятся c Вашими претензиями в адрес MS Excel 2016.
На всякий случай проверьте, что у Вас на проблемном компьютере не установлены надстройки и личная книга макросов.
tony0303 написал: У меня стало просто СЕГОДНЯ, а была ссылка. При открытии файлов 1 и 2 все также ни чего не меняется...
Расшифруйте, пожалуйста, слова "у меня". Надо сравнивать одни и те же объекты. Вы воспроизводили в точности те же действия (включая те же папки), которые я выполнил в #9?
У меня на компьютере Win10 Excel 2016 проблема не воспроизводится.
1. Развернул Вашу папку "Общая" из архива как подпапку C:\Temp.
2. Открыл файл C:\Temp\Общая\Общий.xlsx. Отображаемое значение ячейки C3 со ссылкой ='C:\Temp\Общая\Индивидуальный\[3.xlsx]Лист1'!$A$1 равно 12.07.2025
3. Открыл и закрыл файл C:\Temp\Общая\Индивидуальный\3.xlsx. В файле "Общий" значение ячейки C3 поменялось 13.07.2025.
4. Пытаюсь закрыть файл "Общий" - выдается сообщение о необходимости сохранения изменений. Закрываю без сохранения. Теперь все файлы закрыты.
5. Еще раз открываю файл "Общий". Значение ячейки С3 - 13.07.2025. Пытаюсь закрыть файл "Общий" - выдается сообщение о необходимости сохранения изменений.
Выложите образцы (для теста) индивидульного и общего файла и опишите точную последовательность действий, приводящую к проблеме. Мы посмотрим на версиях Excel 2016 и 2019.
Путем упрощения примера с ошибкой пришел к неожиданному открытию и не знаю как решить эту проблему, Бонус: способ как устроить ошибку "Разрушительный сбой" в абсолютно новом файле
Спасибо за исследование! Последовательность действий, описанная Вами, приводит к разрушению структуры проекта книги (\xl\vbaProject.bin), после этого файл уже не отремонтировать.
Путем упрощения примера с ошибкой пришел к неожиданному открытию и не знаю как решить эту проблему, Бонус: способ как устроить ошибку "Разрушительный сбой" в абсолютно новом файле
Проделал операции, указанные в стартовом сообщении, на компьютере с Win 10, Excel 2016 (32). Результат прилагается. У меня файл открывается в обычном режиме.
В макросах лучше (при прочих равных) не использовать локализованные свойства. Если Вашу книгу откроют на компьютере с Windows другой локализации, то макрос выдаст ошибку. В Вашем случае можно так:
Постраничная разбивка и сохранение при слиянии excel и word, Не получается через ActiveDocument.MailMerge.DataSource.DataFields.Value получить значение полей при процедуре слияния word и excel