#excel #vba
#excel #vba
Вопрос:
У меня есть файл Excel. Я хочу, чтобы программа, когда я набираю в поле A1 номер «1», регулировала высоту строки «1» на высоту, отличную от остальных строк. Когда я пишу в поле A1 номер «2», высота строки «2» должна быть скорректирована на высоту, отличную от остальных строк, а когда я пишу в поле A1 номер «3», высота строки «3» должна быть изменена на высоту, отличную отостальные строки. И так далее . Спасибо
Комментарии:
1. Какое значение высоты отличается от других строк?
Ответ №1:
Отрегулируйте высоту строки
- Скопируйте код в соответствующие модули.
- Это автоматизировано, не нужно ничего запускать.
- Вы можете скопировать код модуля листа на любое количество листов, и он будет выполняться на всех из них.
Стандартный модуль, например Module1
Option Explicit
Sub adjustRowHeight( _
CellRange As Range, _
ByVal NewRowHeight As Double, _
Optional ByVal DefaultRowHeight As Double = 15)
With CellRange
Dim Curr As Variant
Curr = CellRange.Value
Application.ScreenUpdating = False
.Worksheet.Rows.RowHeight = DefaultRowHeight
If IsNumeric(Curr) Then
If Curr >= 1 And Curr <= .Worksheet.Rows.Count Then
If NewRowHeight >= 0 And NewRowHeight < 410 Then
.Worksheet.Rows(CLng(Curr)).RowHeight = NewRowHeight
End If
End If
End If
Application.ScreenUpdating = True
End With
End Sub
Модуль листа, например Sheet1
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.CountLarge = 1 Then
If Target = Range("A1") Then
adjustRowHeight Target, 30, 15
End If
End If
End Sub