Динамически растут слитые клетки высотой - PullRequest
0 голосов
/ 28 июня 2018

Я хочу отображать текст в ячейке Excel, длина которой будет меняться. В ячейке должно быть более 5 тыс. Персонажей. Вот почему я объединил три соседние ячейки и три ряда. Но, согласно длине входного текста, высота ячеек не изменяется динамически.

Пример кода, который я реализовал:

Sub pqrs(ByVal target as Range)
   Dim r as Range
   Set a = Worksheets("Sheet1").Range(B1:D3) 
   a.Value = "large text........."
   abcd.a '--- Called below Proc.
   a.Merge
End Sub

Sub abcd(ByVal target as Range)
   Dim r as Range
   Dim defaultHeight as Integer
   Dim maxtHeight as Integer
   Dim length as Integer
   Dim heightToUse as Double

   defaultHeight = 12
   maxHeight = 409
   taget.merge

   For Each r in target.Cells(1)
        length = Len(r.Value)
        If length >= 1000 and length <= 2000 Then
           heightToUse = defaultHeight + 100
        If (heightToUse > maxHeight) Then
            r.RowHeight = maxHeight
        Else
             r.RowHeight = heightToUse
        End If  
        ElseIf length > 2000 and length <= 4000 Then
            heightToUse = defaultHeight + 200
        If (heightToUse > maxHeight) Then
            r.RowHeight = maxHeight
        Else
            r.RowHeight = heightToUse
        End If  
    Else
          r.RowHeight = defaultHeight
    End If
          r.WrapText = True
  Next r
 End Sub

1 Ответ

0 голосов
/ 28 июня 2018

Я вижу несколько проблем в вашем коде.

1) Мало того, что «слияние» пишется как «слияние», как указывал @Jeeped, «цель» пишется как «taget»

2) Dim maxtHeight As Integer должно быть Dim maxHeight As Integer

3) For Each r In target должно быть For Each r in target.rows или For Each r in target.cells, или что-то еще, я не могу сказать, не увидев ваш пример.

4) Возможно, вам нужно объединить текст, чтобы получить результаты, которые, я думаю, вам нужны (например, r.WrapText = True).

Когда я исправил все ваши ошибки, высота изменилась, но я не уверен, действительно ли он достиг желаемых результатов, потому что я не видел вашу электронную таблицу или реальные данные. Пожалуйста, исправьте все эти опечатки. Если код по-прежнему не работает, опубликуйте образец электронной таблицы, чтобы мы могли увидеть фактический макет и данные. Если это сработает, не забудьте пометить ответ, чтобы люди знали, что ваша проблема решена.

...