Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/макрос для увеличения высоты строки - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
макрос для увеличения высоты строки
Литр Дата: Пятница, 28.11.2025, 08:48 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

20213
Добра всем.

Прошу помощи: нужен макрос для диапазона ячеек страницы который автоматически увеличивает высоту строки в зависимости от введненного текста внутри.
Например: Иванов Иван Иванович - 20 пикс,

Иванов
Иван
Иванович - 60 пикс.

Есть такая заготовка, нужно добавить команду:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("F2:G1000", "K2:L1000")) Is Nothing Then
' макрос увеличения строки
End If
End Sub
[/vba]

Заранее благодарю


Сообщение отредактировал Литр - Пятница, 28.11.2025, 13:13
 
Ответить
СообщениеДобра всем.

Прошу помощи: нужен макрос для диапазона ячеек страницы который автоматически увеличивает высоту строки в зависимости от введненного текста внутри.
Например: Иванов Иван Иванович - 20 пикс,

Иванов
Иван
Иванович - 60 пикс.

Есть такая заготовка, нужно добавить команду:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("F2:G1000", "K2:L1000")) Is Nothing Then
' макрос увеличения строки
End If
End Sub
[/vba]

Заранее благодарю

Автор - Литр
Дата добавления - 28.11.2025 в 08:48
MikeVol Дата: Пятница, 28.11.2025, 22:42 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 460
Репутация: 110 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
[vba]
Код
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ExitHandler
    Application.EnableEvents = False

    Dim rng         As Range
    Set rng = Me.Range("F2:G1000,K2:L1000")

    If Target.CountLarge = 1 Then

        If Not Intersect(Target, rng) Is Nothing Then
            AutoFitRow Target
        End If

    End If

ExitHandler:
    Application.EnableEvents = True
End Sub

Private Sub AutoFitRow(ByVal cell As Range)
    Dim r           As Long
    r = cell.Row

    With Rows(r)
        .AutoFit

        If .RowHeight < 20 Then .RowHeight = 20
        If .RowHeight > 120 Then .RowHeight = 120
    End With

End Sub
[/vba]Как вариант


Ученик.
Одесса - Украина
 
Ответить
Сообщение[vba]
Код
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ExitHandler
    Application.EnableEvents = False

    Dim rng         As Range
    Set rng = Me.Range("F2:G1000,K2:L1000")

    If Target.CountLarge = 1 Then

        If Not Intersect(Target, rng) Is Nothing Then
            AutoFitRow Target
        End If

    End If

ExitHandler:
    Application.EnableEvents = True
End Sub

Private Sub AutoFitRow(ByVal cell As Range)
    Dim r           As Long
    r = cell.Row

    With Rows(r)
        .AutoFit

        If .RowHeight < 20 Then .RowHeight = 20
        If .RowHeight > 120 Then .RowHeight = 120
    End With

End Sub
[/vba]Как вариант

Автор - MikeVol
Дата добавления - 28.11.2025 в 22:42
Литр Дата: Суббота, 29.11.2025, 17:07 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

20213
MikeVol, hands

Спасибо, работает замечательно, даже на защищенном листе. Как и планировалось.

Можно ли добавить такой код: что бы при копировании в контролируемые ячейки из буфера вставлялось только содержимое без форматов. По аналогии "специальная вставка.... / Значения"


Сообщение отредактировал Литр - Суббота, 29.11.2025, 17:08
 
Ответить
СообщениеMikeVol, hands

Спасибо, работает замечательно, даже на защищенном листе. Как и планировалось.

Можно ли добавить такой код: что бы при копировании в контролируемые ячейки из буфера вставлялось только содержимое без форматов. По аналогии "специальная вставка.... / Значения"

Автор - Литр
Дата добавления - 29.11.2025 в 17:07
MikeVol Дата: Суббота, 29.11.2025, 17:53 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 460
Репутация: 110 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
По аналогии "специальная вставка.... / Значения"
Пробуйтее: [vba]
Код
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ExitHandler
    Application.EnableEvents = False

    Dim rng         As Range
    Set rng = Me.Range("F2:G1000,K2:L1000")

    If Target.CountLarge = 1 Then

        If Not Intersect(Target, rng) Is Nothing Then

            If Target.HasFormula = False Then
                Target.Value = Target.Value
            End If

            AutoFitRow Target
        End If

    End If

ExitHandler:
    Application.EnableEvents = True
End Sub

Private Sub AutoFitRow(ByVal cell As Range)
    Dim r           As Long
    r = cell.Row

    With Rows(r)
        .AutoFit

        If .RowHeight < 20 Then .RowHeight = 20
        If .RowHeight > 120 Then .RowHeight = 120
    End With

End Sub
[/vba]


Ученик.
Одесса - Украина
 
Ответить
Сообщение
По аналогии "специальная вставка.... / Значения"
Пробуйтее: [vba]
Код
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo ExitHandler
    Application.EnableEvents = False

    Dim rng         As Range
    Set rng = Me.Range("F2:G1000,K2:L1000")

    If Target.CountLarge = 1 Then

        If Not Intersect(Target, rng) Is Nothing Then

            If Target.HasFormula = False Then
                Target.Value = Target.Value
            End If

            AutoFitRow Target
        End If

    End If

ExitHandler:
    Application.EnableEvents = True
End Sub

Private Sub AutoFitRow(ByVal cell As Range)
    Dim r           As Long
    r = cell.Row

    With Rows(r)
        .AutoFit

        If .RowHeight < 20 Then .RowHeight = 20
        If .RowHeight > 120 Then .RowHeight = 120
    End With

End Sub
[/vba]

Автор - MikeVol
Дата добавления - 29.11.2025 в 17:53
MikeVol Дата: Суббота, 29.11.2025, 17:55 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 460
Репутация: 110 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
del (duplicate)


Ученик.
Одесса - Украина


Сообщение отредактировал MikeVol - Суббота, 29.11.2025, 17:55
 
Ответить
Сообщениеdel (duplicate)

Автор - MikeVol
Дата добавления - 29.11.2025 в 17:55
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!