ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
21 апреля
1504107 Топик полностью
LordNфилософ (07.03.2025 09:38, просмотров: 80) ответил General на Нажимаешь кнопку
Чтобы изменить формат ячейки на **формат даты** после удаления лишних символов, нужно добавить в макрос строку, которая изменяет формат ячейки. Вот обновленный код: ```vba Sub TrimLastFourCharsAndFormatAsDate() Dim rng As Range Dim cell As Range Dim maxLength As Integer Dim selectedColumn As Range ' Задаем максимальное количество символов maxLength = 10 ' Измените это значение на нужное ' Проверяем, выделен ли один столбец 

On Error Resume Next Set selectedColumn = Application.InputBox("Выделите столбец и нажмите ОК", Type:=8) On Error GoTo 0 If selectedColumn Is Nothing Then MsgBox "Выделите один столбец и попробуйте снова." Exit Sub End If ' Убедимся, что выделен только один столбец If selectedColumn.Columns.Count > 1 Then MsgBox "Пожалуйста, выделите только один столбец." Exit Sub End If ' Применяем изменения только к выделенному столбцу For Each cell In selectedColumn If Len(cell.Value) > maxLength Then cell.Value = Left(cell.Value, Len(cell.Value) - 4) ' Меняем формат ячейки на формат даты cell.NumberFormat = "dd.mm.yyyy" ' Измените на нужный формат даты End If Next cell MsgBox "Готово!" End Sub ``` ### Что добавлено: 1. После удаления четырех символов (`cell.Value = Left(cell.Value, Len(cell.Value) - 4`) макрос изменяет формат ячейки на формат даты с помощью строки: ```vba cell.NumberFormat = "dd.mm.yyyy" ``` Вы можете изменить формат даты на любой другой, например: - `"mm/dd/yyyy"` (месяц/день/год) - `"yyyy-mm-dd"` (год-месяц-день) - или любой другой, который вам нужен. ### Как это работает: 1. Макрос удаляет четыре последних символа в ячейках, где длина строки превышает `maxLength`. 2. После удаления символов макрос изменяет формат ячейки на формат даты. ### Пример: Если в ячейке было значение `"202310251230"` (где `20231025` — дата, а `1230` — лишние символы), то после выполнения макроса: - Лишние символы удалятся, и останется `"20231025"`. - Формат ячейки изменится на дату, и значение будет отображаться как `25.10.2023` (в зависимости от выбранного формата). ### Важно: - Убедитесь, что оставшиеся данные в ячейках после удаления символов могут быть корректно интерпретированы как дата. Например, `"20231025"` будет корректно преобразовано в дату, а `"abcdefgh"` — нет. Если у вас есть дополнительные вопросы или нужно что-то доработать, дайте знать! 😊

ЛН