В настоящее время я работаю над более широким макросом для репликации определенного диапазона строк (по сути, одного печатного листа) любое указанное количество раз. Ячейки появляются сразу под предыдущими (т.е. строки 13:27 реплицируются в 28:42, 43:57 и т. д. До любого указанного количества). Все формулы в диапазоне являются динамическими и основаны на различных ссылках, поэтому содержимое каждой новой «страницы» отличается.
Иногда контент на определенных «страницах» превышает пространство ячейки. Я ищу способ проверить каждую строку после начальной точки (скажем, строку 13 до тех пор, пока последняя строка с содержимым не будет после всех дублирований) и автоматически изменить размер строки только если строка станет больше при автоматическом изменении размера. Мне нужно поддерживать минимальную высоту для каждой строки (50 пикселей), чтобы макрос автоматически изменял размер строки только при увеличении высоты.
Кто-нибудь знает, как это сделать эффективно? Я все еще новичок в VBA, поэтому я рад рассмотреть любой вариант / альтернативу или предоставить какие-либо разъяснения, чтобы помочь в этом разобраться. Спасибо!
это возможно, но нам нужна дополнительная информация. сколько столбцов занимает строка? если это один столбец, какой длины должен быть столбец? вы хотите обернуть текст?
Как объяснил @PeterT в комментариях, все, что вам действительно нужно сделать, это попробовать автоматическую подгонку и отклонить размеры, которые вам не нужны. Я обычно использую этот метод для столбцов, а не для строк, но концепция та же.
Dim YourRange As Range
'Whatever you're using to obtain a reference to it.
'...
Dim row As Long
For row = 13 To YourRange.Rows.Count
YourRange.Rows(row).AutoFit
If YourRange.Rows(row).RowHeight > 50 Then
YourRange.Rows(row).RowHeight = 50
End If
Next
Как насчет того, чтобы зафиксировать высоту строки по умолчанию (вероятно, 50), а затем для каждой высоты строки выполнить автоматическую подгонку. Если высота автоподгонки (значительно?) Отличается от высоты по умолчанию, оставьте новую высоту. В противном случае верните значение по умолчанию.