Как настроить высоту строки в зависимости от содержимого ячейки?

2865
zarqos.os

У меня есть таблица из одного столбца и более 200 строк. Я хочу отрегулировать высоту этих строк в зависимости от их содержимого.

Например, если ячейка содержит менее 10 символов, тогда строка должна иметь длину 25 пикселей, а если она содержит больше или равно 10 символам, строка должна иметь длину 50 пикселей.

Эти фотографии могут объяснить, что я хочу сделать:

before

в

after

2
Условное форматирование не может изменить высоту строки, здесь вы можете использовать только макрос. Однако я не понимаю, зачем вам такое форматирование. Máté Juhász 7 лет назад 0
Моя настоящая таблица - это счет, содержащий описание элементов, когда описание слишком длинное, оно будет перенесено автоматически, но ячейка не отображает весь текст, и я не хочу использовать строки автоподбора, потому что я хочу использовать свой собственный значения их высот. (извините за мой плохой английский) zarqos.os 7 лет назад 0
Ваш вопрос на самом деле не ясен, потому что телекоммуникации, кажется, находятся в верхней ячейке, но не имеют более 20 символов ... Dave 7 лет назад 0
Я отредактировал вопрос и второе утверждение более 10 символов :) zarqos.os 7 лет назад 0
два утверждения:> = 10 или <10 :) zarqos.os 7 лет назад 0

2 ответа на вопрос

1
Dave

Это основано на вашем неясном вопросе! Я также разместил динамический вариант

Option Explicit Sub ChangeRowsColsInPixels() Dim r As Range  For Each r In ActiveSheet.UsedRange  Dim length As Integer length = Len(r.Value) If length > 0 Then If length < 10 Then  r.RowHeight = 25 End If  If length >= 10 Then r.RowHeight = 50 End If End If  Next r  End Sub 

Как добавить VBA в MS Office?

Вы не спрашивали о выравнивании текста внутри ячейки, но, как вы можете middle alignпредположить, этого достаточно

Вы также не хотите предпринимать никаких действий, если количество символов от 10 до 20

До

enter image description here

После

enter image description here

И со средним выравниванием

enter image description here

Это работает хорошо, но есть ли способ, что этот макрос, который будет выполнен автоматически, когда я нажму Enter, макрос вступит в силу? кстати, я изложил свой вопрос, потому что я сделал ошибку в отношении второго утверждения. zarqos.os 7 лет назад 0
Да, я даже добавил ссылку о том, как добавить макрос, который показывает это Dave 7 лет назад 0
Я имею в виду, когда я ввожу данные в ячейку и когда я нажимаю entre для проверки этих данных, макрос будет выполняться автоматически. zarqos.os 7 лет назад 0
Посмотрите на мой второй пост, он показывает, что вы хотите с `sub worksheet_change` Dave 7 лет назад 0
0
Dave

Как второе решение моего другого поста, это предложит более динамичный подход, в котором высота будет обновляться в зависимости от количества символов (это не было должным образом проверено для верхних пределов / максимумов и так с большой длинной строкой). / value, скорее всего, возникнет исключение, поэтому я добавил жестко заданный лимит, который, по-видимому, находится в пределах предела в Excel 2010)

Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range Dim defaultHeight As Integer defaultHeight = 25  Dim maxHeight As Integer maxHeight = 399  For Each r In ActiveSheet.UsedRange  Dim length As Integer length = Len(r.Value) If length > 0 Then Dim heightToUse As Double heightToUse = defaultHeight + length If (heightToUse > maxHeight) Then r.RowHeight = maxHeight Else r.RowHeight = heightToUse End If End If  Next r  End Sub 

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

Как добавить VBA в MS Office?

До
enter image description here

После (с Middle Alignпомощью вкладки «Выравнивание» ленты)

enter image description here

Я попробовал этот код, и он работает, но я отмечаю, что высота зависит от длины введенного текста, но я хочу, чтобы она принимала два значения: 25 и 50 пикселей. zarqos.os 7 лет назад 0
эм ... да. Разве вы не можете понять, я дал 2 ответа? Это более динамичный подход, поскольку он потенциально полезен для других. Это также включает дополнительную информацию, такую ​​как обновление на лету (хорошо, когда значение ячейки изменяется). Я уверен, что вы можете использовать биты из обоих постов? Dave 7 лет назад 0

Похожие вопросы