1

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

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

2 ответа2

4

Вот пост в блоге Contextures, счастливо озаглавленный "Autofit Merged Cell Row Height"

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

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
0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .