, заработало!

.
.
|
05.02.2026 16:28:20
я потому к людям и пришёл у тебя даже если починить :
то вывод будет такой
не говоря уже о размере этой портянки, у меня в первом посте всё максимально компактно без этих вот лишних 200 строк, а точнее даже 462 строки
Изменено: - 05.02.2026 16:30:19
|
|||||||
|
|
|
|
05.02.2026 10:55:19
есть один рабочий вариант, но он мигает (sub test1)
если несколько файлов обрабатывать, то забирается фокус на cmd окна, т.е. параллельно что-то делать невозможно два вопроса: 1. как сделать выполнение .StdOut.ReadAll в скрытом режиме? 2. либо как починить sub test3?
Изменено: - 05.02.2026 14:05:58
|
|||
|
|
|
|
14.01.2026 18:00:19
что не так? чем текстовая "14/01/26" ЗНАЧИТЕЛЬНО хуже датированной "#среда 14/01/2026 по лунному календарю#" ? кто даст гарантию, что на каком-то ПК не установлен такой формат даты? "ddd dd.MM.yyyy yyyy" ![]() и что это никоим образом не повлияет на сотню различных возможных функций-преобразований вида (дата-число-строка) ? как например повлияло на DateValue, да даже банальная CStr(Date) выдаст тоже "среду", которая полетит дальше по коду пытаться обрабатываться как неожиданная фиктивная числовая дата или вообще поедет в ячейку к бухгалтеру тёте Глаше, а потом они будут всем отделом гадать а откуда у них там взялась среда или два года подряд в ячейке с датой, ведь в коде у умного дяди погромиста было всё по науке, обработка только формата даты, и никаких тебе убогих стрингов я лишь дал один из вариантов обработки, никого к нему не призываю спорить про чей-то ЛИЧНЫЙ уровень понимания типов данных и прочие далёкие от конкретного кода филосовские штуки - это не ко мне
Изменено: - 14.01.2026 18:31:48
|
|||
|
|
|
|
14.01.2026 17:49:01
теперь же, когда причина ясна - остаётся дело за малым - топорно преобразовать дату в текст перед выводом. т.к. любой вывод или обработка именно даты - выдаст день недели, что как оказывается не всегда съедается самими же родными экселевскими функциями
Изменено: - 14.01.2026 18:09:33
|
|||||||||||
|
|
|
|
14.01.2026 17:36:11
наверное в таком случае более стабильным вывод будет с такой текстовой, а не датированной пред-обработкой (для вывода в ячейку или в дальнейшую обработку)
Изменено: - 14.01.2026 17:36:55
|
|||||||||
|
|
|
|
14.01.2026 17:04:46
Изменено: - 14.01.2026 17:07:12
|
|||||||||
|
|
|
|
14.01.2026 15:49:05
Изменено: - 14.01.2026 15:57:27
|
|||||
|
|
|
|
14.01.2026 15:25:45
О, и даже с виртуалками морочиться не пришлось вот где это убирается - ПКМ на часы справа снизу - настройка времени и даты - формат даты и времени и региона - изменить форматы данных - выставить ту, где нету "дня недели" у меня после изменения строка со "Ср dd.mm.yyyy" куда-то пропала, а была выбрана внизу нижней строчкой (там где красная рамка) ![]() я вроде какую-то софтину устанавливал или где-то что-то шаманил, чтобы в часах вин 10 отображался день недели в строке перед датой, как на вин7 после смены в (Пуск - Региональные параметры (Регион) - изменить форматы данных) - всё починилось и код заработал
благодарю каждого за помощь, каждый внёс свою прояснительную грань в этом вопросе
Изменено: - 14.01.2026 15:43:09
|
|||||
|
|
|
|
14.01.2026 15:04:30
_
![]()
вообще странно, что за столько лет такой ошибки ни у кого не возникало? с нуля копать попробую позапускать код на разных версиях windows, о результатах сообщу
а у всех остальных какой результат преобразования? вот такой? "12.06.24 9:42:15" ? значит проблема именно в том, чтобы выставить (в системе?), чтобы день недели спереди не отображался
Изменено: - 14.01.2026 15:17:57
|
|||||||||||
|
|
|
|
14.01.2026 14:24:05
скринить результат с объявлением типов данных я не стал, а просто написал текстом если нужен персональный скрин и слов недостаточно, то пожалуйста ![]() вот ещё и файл-пример прикреплён с этим же кодом, который тоже у меня выдаёт ошибку
Изменено: - 14.01.2026 14:34:13
|
|||||||||||
|
|
|
|
14.01.2026 14:03:03
уместен ли тут вообще вопрос "зачем?"
Изменено: - 14.01.2026 14:27:01
|
|||
|
|
|
|
14.01.2026 14:00:13
![]()
Изменено: - 14.01.2026 14:26:25
|
|||||||
|
|
|
|
14.01.2026 13:47:39
такой код выдает ошибку DateValue - Type Mismatch, хотя раньше вроде бы работал
появление ошибки зависит от настроек винды? или настроек экселя? как её чинить?
Изменено: - 14.01.2026 13:52:54
|
|||
|
|
|
|
17.12.2025 08:01:40
Вот несколько видео по нашей теме Вот код пятого видео
|
|||
|
|
|
|
25.02.2025 13:18:37
исходя из практики - такой алгоритм очень долгий, обрабатывает 200-1000 символов в минуту, но из альтернатив наверное ничего и нету
Изменено: - 05.03.2025 16:54:51
|
|||
|
|
|
|
20.02.2025 11:28:18
после установки x64 офиса - формулы полностью нагружают все 100% потоки процессора и справа снизу в строке состояния пишет количество нагруженных процессоров
но сам vba код работает только в однопоточном режиме, загружая процессор на 5-15% есть ли какие-то опции по включению всех потоков в vba? бывают ли вообще многопоточные компиляторы в программировании?
Изменено: - 20.02.2025 11:37:01
|
|
|
|
|
|
19.02.2025 07:48:27
![]() как объединить несколько ячеек в одну с сохранением всех цветов? кто-то прорабатывал такую процедуру? тут есть два момента: 1. обрабатывать нужно посимвольно, т.к. в исходных ячейках может быть несколько цветов текста внутри каждой ячейки, т.е. цвет текста нельзя считывать со всей ячейки 2. этот код имеет максимальную длину 255:
одно решение есть , но страдает от ошибки переполнения 255 и не учитывает разный цвет внутри исходных ячеек
ещё одно из решений есть , но страдает от ошибки переполнения 255 Сцепляет с сохранением форматирования выделенные строки и помещает результат справа от выделения. Ячейка куда записывается результат сначала затирается
пока что думаю алгоритм такой: v1 1. сначала выгрузить сырое сцепленное Value в результирующую ячейку 2. пройтись по исходным ячейкам и изменение цвета текста записать в словарь или коллекцию в виде [номер символа, индекс нового цвета] 3. покрасить итоговый сырой результат на основе этого словаря или коллекции 4. если нужно сохранить не только цвет, но и форматирование - то писать кодировку вида Font_Size_Bold_Underline_italic_Color, например Arial_12_NoBold_UL_Noit_FFFF00, хотя в данном случае возможно проще будет сделать на многомерном массиве, чтобы не сплитать и не расшифровывать эту кодовую строку форматирования v2 а можно так: 1. сцепить сырой текст из всех исходников в результат 2. покрасить текст функцией выше, заквотив в ней две строки - 1. предочистка результирующей ячейки и 2. посимвольное впечатывание символа в результирующую ячейку v2 успешно отрабатывает на длине более 255 таким образом можно переделать пару строк в ConcatenateWithFormat и получить процедуру, которая успешно отработает и на разных цветах и на длине более 255, вдобавок можно добавить кастомный сепаратор между значениями исходных ячеек и фильтр по ячейкам смежные темы:
Изменено: - 19.02.2025 09:42:04
|
|||||||
|
|
|
|
02.08.2024 18:48:05
только если открыт рабочий стол через InvokeVerbEx, то Shell.Explore уже не откроет новое, а просто активирует. 1. если вручную открыто 3 рабочих стола, потом InvokeVerbEx откроет 4-ое окно (игнорируя ранее открытые), и Explore активирует это 4-ое окно 2. если вручную открыто 3 рабочих стола, и сразу Explore, то открываются новые окна таким образом - у окна, открытого InvokeVerbEx , некий особый статус
Изменено: - 02.08.2024 18:49:50
|
|||
|
|
|
|
02.08.2024 01:31:14
, сработало
ниже: обычная папка - это та которая не нужна (если вручную идти в мои документы\рабочий стол) уникальная папка с синей иконкой - тот рабочий стол, который нужен - если тыкать на рабочий стол в боковом меню любой папки 1. если открыта "обычная" папка рабочий стол - то открывает всё равно новое окно с уникальной синей иконкой 2. если уже открыто хотя бы одно окно с уникальной иконкой - то активирует его 3. если открыто несколько окон с уникальной синей иконкой - то активирует самое раннее открытое 4. если не открыто ни одного окна с уникальной синей иконкой - то открывает новое нужное окно таким образом - это лучше, чем всё, что у меня было до этого, т.к. первая команда которая умеет открывать рабочий стол с синей уникальной иконкой и всё ещё - эта команда не может открыть 3 отдельных окна. есть такая же команда, только с принудительным открытием нового окна? нашлась только
а список команд;
не показывает ничего интересного в духе "new window"
не делает ничего -- что интересно, в кавычках "CreateObject("Shell.Application").Namespace(0).Self.InvokeVerbEx" гуглится и яндексится только 1 результат
Изменено: - 02.08.2024 10:02:33
|
|||||||
|
|
|
|
01.08.2024 04:09:30
Как открыть рабочий стол? (vba, winapi, win7)
по какому адресу он находится? в идеале бы получить CLSID в реестре прописан "Desktop" ::{00021400-0000-0000-C000-000000000046}, но он никуда не ведёт "file:///C:/Users/Admin/Desktop" открывает папку с рабочим столом (на картинке слева) а нужно именно виндовый рабочий стол с уникальной иконкой (на картинке справа) ![]()
Изменено: - 01.08.2024 04:24:11
|
|
|
|
|
|
05.12.2023 11:54:49
как его подключить к офису выше 2003 ? через VBA - Tools - References - Browse - IndenterVBA.DLL - не подключается
Изменено: - 05.12.2023 11:55:56
|
|||
|
|
|