Можно и без макроса: выделить все листы, выделить все ячейки и автоподбор.
Владимир
25 фев 2021 12:59:56
Владимир
|
|||
|
23 фев 2021 14:29:32
Владимир
|
|||
|
21 фев 2021 19:54:15
Понятно. Директория по умолчанию (default directory or folder) всегда блокируется от удаления и переименования. Это не связано с особенностями объекта FileDialog (который "виноват" лишь в смене текущей директории).
То же произойдет, если Вы выполните Chdir (как в #4) и попытаетесь переименовать вновь установленную директорию по умолчанию.
Владимир
|
|
|
21 фев 2021 14:13:45
Существует обширная математическая литература по теме
![]()
Владимир
|
|
|
21 фев 2021 13:57:06
Не вижу блокировки при переименовании выбранной папки для Application.FileDialog.
Владимир
|
|||
|
21 фев 2021 13:09:08
Итак, анализируем результаты экспериментов.
При указанном Андреем в #5 аргументе поиска "f" текст находится только для февраля, для аргумента "y" текст найден для месяцев 1,2,5,7. Проведя аналогичные опыты (и вспомнив английский язык ![]() 1. В процессе выполнения поиска числовые, логические и ошибочные значения ячеек преобразуются в текст (числовые - с учетом формата ячеек). При преобразовании текущие региональные настройки не учитываются, точнее, преобразование производится в соответствии со стандартными "американскими" настройками: локализация en_US, дробная часть числа отделяется точкой, разделитель тысяч запятая, стандартный формат даты M/D/YYYY. Таким образом, если в ячейке с форматом D MMMM YYYY содержится число, соответствующее первому дню текущего года, то оно будет преобразовано в текст "1 January 2021". Логические значения ячеек преобразуются в "FALSE" или "TRUE", ошибочные в "#DIV/0!", "#NAME?", ... 2. Если текст, полученный в результате п.1, не помещается в ячейке, то он заменяется на один или несколько символов "#". Теперь мы можем объяснить результаты в задаче 2 из #1. Ширина столбца "A" выравнивается под ширину видимого текста в ячейкe A1 (например, "1 Январь 2021"), Если текст, полученный в результате п.1 (например, "1 January 2021"), помещается в ячейке, то он будет найден, иначе нет. Кстати, в конфигурации автора результат выполнения 2-го макроса из #1 отличается от результата коллеги, указанного в #8: текст не найден для месяцев 3, 8, 9, 11, 12. Это объясняется возможными различиями в настройке стиля "Обычный" ("Normal"), который используется для форматирования ячейки по умолчанию. Использовать или нет в макросах "мудреный" метод, указанный в заголовке темы - решать читателю. ![]()
Изменено:
Владимир
|
|
|
20 фев 2021 17:10:41
В Вашем примере замена цены на копейку меняет итог либо на 50, либо на 146 копеек. Не факт, что задача имеет решение в общем случае.
В данном случае Вам повезло - надстройка Excel "Поиск решения" помогла. Для модераторов тема: "Подбор цены в копейках по нескольким позициям для достижения требуемого итога".
Изменено:
Владимир
|
|
|
19 фев 2021 18:50:22
Изменено:
Владимир
|
|||||
|
19 фев 2021 14:03:51
Добрый день!
Вопросы по применению метода Range.Find c параметром LookIn:=xlValues сравнительно часто задаются на форуме. Владимир ( Первую задачу можно в начале решать "без доски". Что будет выдано в результате выполнения следующего макроса. Почему?
Следующая задача значительно труднее. Ее решение дает ключ к ответу по данной теме. Выполнить макрос. Если есть различия в сообщениях по месяцам, то объяснить эти различия.
Сделаем паузу на пару дней, чтобы дать возможность читателям темы (если таковые будут) провести самостоятельные исследования.
Владимир
|
|||||||
|
18 фев 2021 17:07:04
Владимир
|
|||
|
18 фев 2021 13:42:27
Метод Range.Find с параметром LookIn:=xlValues имеет ряд непростых для понимания особенностей. Для начала можно ознакомиться с замечательными
Для того, чтобы пример из #6 заработал, необходимо: 1. Изменить формат ячеек первой строки листа Production c Д.М;@ на Д\.М;@ 2. Изменить строку макроса с вызовом Find на
Изменено:
Владимир
|
|||
|
17 фев 2021 14:33:21
Длинный это путь...
Владимир
|
|||
|
17 фев 2021 13:12:50
Добрый день!
1. Для отображения дат в ячейках используйте стандартные форматы - они помечены знаком "*" в списке форматов дат. Тогда каждый пользователь увидит дату в привычном для себя виде и будет вводить дату в привычном для себя виде. 2. Для ячеек, содержащих даты, обязательно поставьте проверку данных (меню Данные/Проверка данных). Укажите тип - дата и, обязательно, разумный интервал для дат (тогда не будет никаких 9021 годов). Идея вводить даты в виде ДД/ММ/ГГГГ в корне неверная, так как, например, любой американец в таком формате считает, что месяц предшествует дню.
Изменено:
Владимир
|
|
|