Джо работает с большим количеством длинных листов, содержащих данные, которые ей, возможно, потребуется распечатать. После печати она пишет в поле рядом со столбцом данных. Все строки автоматически изменяются в соответствии с размером содержимого, поэтому они различаются по высоте. Jeaux ищет макрос, который будет брать выбранные строки и постепенно увеличивать их, скажем, на заданный процент. (Так как они разной высоты, она не может просто установить для всех одинаковую высоту.)

Таким образом, она может сделать строки достаточно большими для рукописного ввода, но все же сможет видеть все данные. Также было бы неплохо иметь способ вернуть высоту строк к той, которая была до печати.

Эту задачу очень легко выполнить с помощью макроса. Все, что вам нужно сделать, это пройти по выбранным строкам и настроить свойство RowHeight, как это сделано в этом макросе:

Sub ExpandSelectedRows()

Dim rRow As Range     Dim dEnlarge As Double

dEnlarge = 1.25     For Each rRow In Selection.Rows         rRow.RowHeight = rRow.RowHeight * dEnlarge     Next End Sub

В этом случае переменная dEnlarge содержит 1,25, что означает, что формула в цикле For …​ Next увеличит высоту строки на 25 процентов. Значение этой переменной можно изменить, чтобы отразить процент, который вы хотите использовать, или вы можете изменить макрос, чтобы запрашивать у пользователя процент:

Sub ExpandSelectedRows()

Dim rRow As Range     Dim dEnlarge As Double     Dim sTemp As String

sTemp = InputBox("Increase by what percent?")

dEnlarge = Val(sTemp)

If dEnlarge > 1 Then dEnlarge = dEnlarge / 100     If dEnlarge < 1 Then dEnlarge = dEnlarge + 1

If dEnlarge > 0 Then         For Each rRow In Selection.Rows             rRow.RowHeight = rRow.RowHeight * dEnlarge         Next     End If End Sub

Если позже вы захотите вернуть строки к их исходной высоте, следующий однострочный макрос выполнит эту работу:

Sub AutfitRows()

Cells.EntireRow.AutoFit End Sub

Этот макрос работает, потому что строки на вашем листе изначально были «автоматически настроены по размеру содержимого». Хотя можно было бы написать макрос для изменения шагов увеличения (деление на dEnlarge вместо умножения), он будет надежно работать только в том случае, если макрос ExpandSelectedRows не запускается несколько раз.

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (21) применим к Microsoft Excel 2007, 2010, 2013 и 2016.