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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 162 След.
Ошибка сохранения в PDF
 
Лучше записывать в ячейку имена листов, а не номера, поскольку номера листов могут измениться.
Поэтому записываем в ячейку A4 текст ОДНОСТРОЧНЫЙ,СУДОВОЙ,ГРАФИК и пробуем макрос:
Код
Sub Command()
  Dim strFileName As String, s As String, publicSheets As sheets
  With ThisWorkbook
    s = .worksheets("ОДНОСТРОЧНЫЙ").Range("A4").Value
    Set publicSheets = .worksheets(Split(s, ","))
    publicSheets.Select
    strFileName = "График " & worksheets("ОДНОСТРОЧНЫЙ").Range("A5").Value
    On Error Resume Next
    .ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      ActiveWorkbook.Path & "\" & strFileName, Quality:= _
      xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
      OpenAfterPublish:=True
    publicSheets(1).Select '  Разгруппировали
  End With
End Sub
Владимир
Ошибка сохранения в PDF
 
Опишите суть задачи.
Какие именно листы Вы хотите вывести в PDF?
У Вас в ячейке A4 листа "ОДНОСТРОЧНЫЙ" указано "2,3,14". Это что?
Владимир
Искусственный интеллект (ИИ) на службе Excel, Искусственный интеллект напишет код макроса, формулы, функции и тд.
 
Я "в лоб" спросил нейросеть, почему она(он) предлагает использовать несуществующее свойство одного из объектов LibreOffice. Ведь можно запустить экземпляр LibreOffice и проверить самостоятельно, до формирования ответа человеку.

Вот полный ответ нейросети :

Gemini said

Вы затронули самый болезненный вопрос в разработке на базе ИИ.

Могу ли я запустить LibreOffice?

К сожалению, нет. У меня есть встроенный интерпретатор Python (песочница), но это «стерильная» среда:

  1. В ней установлены только базовые библиотеки (pandas, numpy, matplotlib и т.д.).

  2. Там нет установленного LibreOffice и, соответственно, нет библиотеки uno.

  3. Там нет графического интерфейса или возможности запустить внешнее приложение.

Поэтому, когда я пишу код для PyUNO, я полагаюсь на свою «базу знаний» (документацию, форумы, SDK). Ошибка с ConditionalFormats  (во множественном числе) — это классическая галлюцинация, возникшая  из-за того, что во многих других API (например, Excel VBA) коллекции  называются именно так. В LibreOffice это всегда ConditionalFormat.

Важно:  Я — ваш «штурман», который знает карту, но «водитель» (исполнитель  кода) — это вы. Ваша проверка на реальной машине — это единственный  способ верификации.

Владимир
Не работают формулы в файле эксель (пустые ячейки), На одном компьютере работает, а на другом нет.
 
Цитата
Тимофеев написал:
а вы раскройте скрытые столбцы - появятся и ошибки
Раскрыть столбцы для отладки - всегда правильно.
sokol3346 (почти тезка :)  ),  на листе "Шаг № 2 расчет" раскройте все столбцы, выделите все столбцы  с формулами и в диалоге "Формат ячеек" / Выравнивание установите "Выравнивание по горизонтали": "по значению". Для ячеек с числами выравнивание должно быть вправо.
Диагноз.
В столбце D это не так. Например, ячейка D2 содержит текст "3,6". У тех пользователей, у которых разделитель дробной доли запятая, этот текст может быть корректно преобразован в число, у остальных - нет.
Изменено: sokol92 - 10.02.2026 17:00:08
Владимир
Как макросом выполнить F2+Enter для диапазона ячеек с текстом/есть ли этому замена?
 
Цитата
Старичок написал:
Вроде бы нормально работает.
Автор темы не высказывался по этому поводу...
Владимир
Как макросом выполнить F2+Enter для диапазона ячеек с текстом/есть ли этому замена?
 
Если еще актуально, можем исследовать этот пример.

Поскольку в моей версии Excel (2016) последовательное нажатие на F2 / Enter  не приводит к визуальным изменениям в отображаемой информации, предлагаю следующий план:
1. Автор темы удаляет из проблемного файла все строки, кроме 606. Назовем новый файл "File1".
2. Автор темы преобразует "File1" путем последовательного нажатия на F2 / Enter и сохраняет как "File2".
В новое сообщение прикрепляются файлы File1 и File2.

Далее мы пытаемся составить макрос, который преобразует File1 в File2.
Владимир
Как макросом выполнить F2+Enter для диапазона ячеек с текстом/есть ли этому замена?
 
Да, действительно, "странный" файл. Завтра вылечим макросом (если раньше никто не сделает).
Владимир
Как макросом выполнить F2+Enter для диапазона ячеек с текстом/есть ли этому замена?
 
Укажите точные координаты проблемы (номер строки и столбца).
Где в Вашем файле из #3 адрес, содержащий "Циолковского" (первый рисунок из сообщения #7)?
Владимир
Как макросом выполнить F2+Enter для диапазона ячеек с текстом/есть ли этому замена?
 
Выделите столбцы A:K. Далее Ctrl+1 ("Формат ячеек"), вкладка "Выравнивание", поставьте отметку "переносить по словам", OK.
Владимир
Как макросом выполнить F2+Enter для диапазона ячеек с текстом/есть ли этому замена?
 
А с какими строками и столбцами у Вас проблема?
Совет. Выделите весь лист и в диалоге "Формат ячеек" на вкладке "Выравнивание" укажите Выравнивание по горизонтали: "по значению". Тогда Вы по выравниванию можете определить тип данных в ячейке (число / текст).
Владимир
Как макросом выполнить F2+Enter для диапазона ячеек с текстом/есть ли этому замена?
 
Трудно ответить, не видя хотя бы фрагмента файла.
Попробуйте выделить прямоугольный диапазон проблемных ячеек и выполнить макрос:
Код
Sub Test()
  Selection.FormulaLocal = Selection.FormulaLocal
End Sub
Владимир
Ошибка буфера обмена
 
Совет от ИИ: Системные настройки: Проверьте Параметры -> Система -> Буфер обмена в Windows, возможно, стоит отключить журнал или синхронизацию.
Владимир
Защита Листа Excel от удаления, VBA либо другим способом
 
Можно в макросе из сообщения #6 после сообщения (Msgbox) вместо закрытия книги все-таки защитить структуру:
Код
Me.Protect Structure:=True, Windows:=False

Тогда лист не будет удален.
Снять защиту структуры можно по событию активации листа (или какому-нибудь еще).
Владимир
DateValue - Type Mismatch - как починить?, vba
 
Кстати, если полагаться на неявное преобразование типов переменных, то можно почти любую функцию сделать зависящей от региональных настроек.  :)

Вот один из примеров (можно попробовать решить без Excel, а затем проверить себя и объяснить результаты).
Что выдаст следующий фрагмент для локализации ru_RU:
Код
  Debug.Print Left("abcd", "2,5")
  Debug.Print Left("abcd", "3,5")
А для локализации en_US?

Ответы
Изменено: sokol92 - 14.01.2026 20:28:41
Владимир
DateValue - Type Mismatch - как починить?, vba
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
DateValue  там не упоминается, кстати
Да, приведенный список функций VBA, которые работают с учетом региональных настроек, разумеется, не является полным.
Владимир
DateValue - Type Mismatch - как починить?, vba
 
Я когда-то написал "шпаргалку" по созданию приложений, эксплуатация которых предполагается на компьютерах с различными региональными настройками.
В частности, п. 3.6, не следует использовать функции VBA, которые зависят от региональных настроек (DateValue в их числе).
Владимир
DateValue - Type Mismatch - как починить?, vba
 
Цитата
KUDRIN написал:
вообще странно, что за столько лет такой ошибки ни у кого не возникало
Боюсь, у Вас необычный формат "краткой даты" (в региональных настройках MS Windows). VBA преобразует  дату в текст в соответствии с форматом "краткой даты".
Обычный формат краткой даты: 14.01.2026
Про настройки форматов см., например, здесь, "Настройка формата даты и времени вручную".
Изменено: sokol92 - 14.01.2026 15:21:13
Владимир
DateValue - Type Mismatch - как починить?, vba
 
Увидел Ваши картинки.
Интересно, в Вашей конфигурации дата неявно преобразована в текст как "Ср 12.06.24 9:42:15". Такой текст функция DateValue "забракует".
А что у Вас указано в настройках Windows в разделе Регион:
Изменено: sokol92 - 14.01.2026 14:37:47
Владимир
DateValue - Type Mismatch - как починить?, vba
 
Добавьте в макрос Дмитрия после присвоения переменной a
Код
Debug.Print a


Скопируйте текст из окна Immediate (Ctrl+G в VBE) и поместите в сообщение
Владимир
Сильно тормозит небольшой по объему файл
 
В этой теме Владимир (ZVI) показывал, как бороться с этим злом.
Владимир
VBA: данные из xml-файла сразу в массив или Recordset, Макросом загрузить данные из xml-файла без выгрузки на лист
 
Здесь - замечательная статья о работе с XML в VBS (для VBA также актуально).
Владимир
Ошибка команды MkDir, Выдает ошибку на MkDir
 
Обсуждалось здесь.

P.S. Как справедливо заметил выше уважаемый Hugo (и это есть в документации), архаичная функция MakeSureDirectoryPathExists не поддерживает юникод, поэтому надо использовать SHCreateDirectoryExW.
Изменено: sokol92 - 11.01.2026 17:00:01
Владимир
Как при инициализации формы в Texbox получить десятичное число через запятую
 
Цитата
Вал Бал написал:
Me.TextBox1

Посмотрите еще сообщения этой темы.
Владимир
Не работает файл с макросами
 
Первый подозреваемый в подобных случаях - антивирусные программы.
Владимир
Преобразовать экспоненциальный формат при импорте данных из интернета
 
Цитата
domovenok1982 написал:
вставлена таблица, присланная по электронке
В каком формате эта таблица?
Владимир
проверка корректности написания кода ОКПД2, пользовательский формат
 
Цитата
БМВ написал:
если на втором листе есть полный список, то проверить при вводе есть ли такой код - не проблема.
На этот вопрос ответ не получен.

Если "Список" полный (так должно быть по Постановлению Правительства 1352), то на листе "Главный" столбец "С" будет содержать формулу (ВПР). В столбце "B" можно сделать проверку значений по списку.
Полный Классификатор ОКПД 2 содержит порядка 20 тыс. позиций.
Изменено: sokol92 - 10.11.2025 19:53:02
Владимир
Р7 офис, Импортозамещение аналог excel
 
Цитата
написал:
Вообще кто нибудь предъявите макрос или пользовательскую функцию в несколько сот строк кода. Это реально?
В JS, к сожалению, реальны и десятки тысяч строк кода.  :)

Сообщение "too many errors 98% scanned" в ONLYOFFICE (R7 у меня нет) означает, что найдено слишком много ошибок / предупреждений после обработки 98 % текста. В диалоговом окне "Макросы" эти ошибки видны. Исправьте ошибки.
Владимир
Преобразование текста на дату, Преобразование текста на дату
 
Подобные вопросы задавались на форуме много раз.
Для всех дат в "американском" формате.
Выделяем проблемные ячейки и выполняем макрос:
Код
Sub ConvertDates()
  Selection.NumberFormat = "m/d/yyyy"
  Selection.Value = Selection.Value
End Sub
Должно работать при любых региональных настройках.
Изменено: sokol92 - 13.09.2025 15:14:14
Владимир
Сохранение и восстановление фильтров VBA в таблицах - проблемы с датами, Написал макрос , вроде работает , но как разобраться с фильтрами по датам не понимаю
 
Цитата
написал:
не готов обрабатывать структуру xml .
Это и не требуется.
Схема такая:
Код
    ActiveWorkbook.CustomViews.Add ViewName:="TempView", RowColSettings:=True
    ' -------------------------------------------------
    ' Отключаем фильтр и выполняем необходимые действия
    ' -------------------------------------------------
    ActiveWorkbook.CustomViews("TempView").Show
Это решение менее трудоемко, чем иные.  :)
Можно попробовать.
Владимир
Сохранение и восстановление фильтров VBA в таблицах - проблемы с датами, Написал макрос , вроде работает , но как разобраться с фильтрами по датам не понимаю
 
Цитата
написал:
предполагаю что мелкософт не ответит на большинство вопросов типа : что такое скрытая строка - это строка скрытая фильтром или строка которой задана высота 0 , и как сработает если два условия (при обновлении) изменили свои значения ?
Мы сами можем попробовать ответить,что запоминается о фильтре при сохранении представления (Custom View).
Пример. Выставляем фильтр по первому столбцу  - значение больше 2. Сохраняем представление, сохраняем файл и смотрим (\xl\worksheets\sheet1.xml) :
Код
<customSheetView guid="{E147A63F-9B5A-438B-B940-526F71467680}" filter="1" showAutoFilter="1" topLeftCell="A4">
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
<autoFilter ref="A1:B5">
<filterColumn colId="0">
<customFilters>
<customFilter operator="greaterThan" val="2"/>
</customFilters>
</filterColumn>
</autoFilter>
</customSheetView
Надо попробовать.
Примеры программной работы с Custom View на форуме есть, например.
Изменено: sokol92 - 27.08.2025 19:53:08
Владимир
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 162 След.
Наверх