Макросы Excel / VBA - условное изменение размера строк, только если обернутый текст не подходит

В настоящее время я работаю над более широким макросом для репликации определенного диапазона строк (по сути, одного печатного листа) любое указанное количество раз. Ячейки появляются сразу под предыдущими (т.е. строки 13:27 реплицируются в 28:42, 43:57 и т. д. До любого указанного количества). Все формулы в диапазоне являются динамическими и основаны на различных ссылках, поэтому содержимое каждой новой «страницы» отличается.

Иногда контент на определенных «страницах» превышает пространство ячейки. Я ищу способ проверить каждую строку после начальной точки (скажем, строку 13 до тех пор, пока последняя строка с содержимым не будет после всех дублирований) и автоматически изменить размер строки только если строка станет больше при автоматическом изменении размера. Мне нужно поддерживать минимальную высоту для каждой строки (50 пикселей), чтобы макрос автоматически изменял размер строки только при увеличении высоты.

Кто-нибудь знает, как это сделать эффективно? Я все еще новичок в VBA, поэтому я рад рассмотреть любой вариант / альтернативу или предоставить какие-либо разъяснения, чтобы помочь в этом разобраться. Спасибо!

Как насчет того, чтобы зафиксировать высоту строки по умолчанию (вероятно, 50), а затем для каждой высоты строки выполнить автоматическую подгонку. Если высота автоподгонки (значительно?) Отличается от высоты по умолчанию, оставьте новую высоту. В противном случае верните значение по умолчанию.

PeterT 01.08.2018 23:03

это возможно, но нам нужна дополнительная информация. сколько столбцов занимает строка? если это один столбец, какой длины должен быть столбец? вы хотите обернуть текст?

Scott Holtzman 01.08.2018 23:27
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
232
1

Ответы 1

Как объяснил @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

Другие вопросы по теме