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

Как удалить повторяющиеся значения (#не удалять повторяющиеся значения#) в столбце excel?
Функции сортировки и ранжирования в Excel для значений времени и чисел в одном столбце
Excel VBA-код для пропуска строк / перейти к команде
Есть ли способ автоматизировать слияние ячеек в excel?
Копирование ячеек из одной таблицы excel в другую на основе значения в строке
Защита форматирования в Excel 2010 и разрешение редактирования текста
Поиск диапазона счетчика Excel, возвращающий #N / A
Excel Vlookup два условия
Удалить все пользовательские стили ячеек EXCEL
ошибка excel sql server: недопустимое имя объекта
Случайная выборка в Excel
Убедитесь, что файл Excel не может быть сохранен, если столбец содержит пустые ячейки
Могу ли я добавить одну точку на график в excel
Формула Excel для отслеживания задач и рабочей нагрузки на двух вкладках
Excel: количество отображений значения дважды и только дважды в столбце

Автоматическая высота объединенной ячейки в Excel 2010

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

можно ли сделать автоматическую настройку объединенных ячеек? Настройка была бы лучшей, но VBA тоже в порядке. Я пробовал код вроде Cells.EntireRow.AutoFit но это все равно идет только к одной линии.

5
задан techturtle
источник

2 ответов

вот контекстная запись в блоге, счастливо озаглавленная "Autofit Высота Строки Объединенной Ячейки"

Я призываю вас, чтобы прочитать весь пост, но вот код:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MergeWidth As Single
Dim cM As Range
Dim AutoFitRng As Range
Dim CWidth As Double
Dim NewRowHt As Double
Dim str01 As String
str01 = "OrderNote"
  If Not Intersect(Target, Range(str01)) Is Nothing Then
    Application.ScreenUpdating = False
    On Error Resume Next
    Set AutoFitRng = Range(Range(str01).MergeArea.Address)

    With AutoFitRng
      .MergeCells = False
      CWidth = .Cells(1).ColumnWidth
      MergeWidth = 0
      For Each cM In AutoFitRng
          cM.WrapText = True
          MergeWidth = cM.ColumnWidth + MergeWidth
      Next
      'small adjustment to temporary width
      MergeWidth = MergeWidth + AutoFitRng.Cells.Count * 0.66
      .Cells(1).ColumnWidth = MergeWidth
      .EntireRow.AutoFit
      NewRowHt = .RowHeight
      .Cells(1).ColumnWidth = CWidth
      .MergeCells = True
      .RowHeight = NewRowHt
    End With
    Application.ScreenUpdating = True
  End If

End Sub
3
отвечен Doug Glancy 2012-06-19 17:46:12
источник

Я сделал надстройку для автоматической подгонки высоты строки нескольких объединенных ячеек. Пожалуйста, используйте это, если вы хотите автоподбор высоты строки. [Вер2-Релизе.6 · toowaki/AutoFitRowEx · Гитхабе] https://github.com/toowaki/AutoFitRowEx/releases/tag/2.6.2

0
отвечен toowaki 2018-06-09 03:56:52
источник

Другие вопросы microsoft-excel-2010