Автоподбор строки относительно ячейки, но не всех строк ячейки - PullRequest
0 голосов
/ 13 марта 2019

У меня есть таблица в Excel (listobject), которая загружает тексты в ячейки в зависимости от определенных критериев.

После загрузки я хотел бы "автоматически установить" ячейки столбца (все ячейки объектов списков имеютсвойство wraptext = true) Но я не хочу автозаполнения ячеек столбца 5 (потому что они содержат много строк каждая.

Это код, который у меня есть до сих пор

dim SRTbl as listobject
set SRTbl = thisworkbook.sheets(1).listobjects(1)

' all rows height 14
SRTbl.DataBodyRange.RowHeight = 14

'I would like that the cells of column 4 are autofit-ed
'but NOT the cells of column 5
SRTbl.listcolumns(4).databodyrange.entirerow.autofit

Это делаетне работает, потому что он автоматически подгоняет всю строку. В столбце 5 ячейки содержат многострочный текст, и я хочу, чтобы автоподбор только для содержимого ячеек столбца 4

Следующее также не работает:

SRTbl.ListColumns(4).Cells.autofit

На всякий случай, если это не совсем понятно. Столбец 4 содержит текст, содержащий 1, 2 или 3 строки. Столбец 5 содержит текст, имеющий много строк> 10

Я хочу настроить высотуячейки к строкам ячеек столбца 4, но не столбца 5.

спасибо

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Если мы посмотрим на то, что делал ваш исходный код, он пытался автоматически установить каждую ячейку в целой строке выбранного вами столбца. Вам просто нужно изменить ссылку с .EntireRow на .EntireColumn.

Кажется, что запутанная вещь заключается в синтаксисе, поскольку вы можете ожидать, что сможете вызывать Autofit непосредственно из объектов таблицы или диапазона. Autofit является функцией объекта .EntireColumn, который, в свою очередь, является подмножеством объектов .Range или .DataBodyRange.

Option Explicit

Sub test()
    Dim SRTbl As ListObject
    Set SRTbl = ThisWorkbook.Sheets(1).ListObjects(1)

    'I would like that the cells of column 4 are autofit-ed
    SRTbl.ListColumns(4).Range.EntireColumn.AutoFit
End Sub
0 голосов
/ 13 марта 2019

Поместите точку останова на линию: SRTbl.listcolumns(4).databodyrange.entirerow.autofit.На панели «Немедленное» в среде IDE введите: SRTbl.listcolumns(4).databodyrange.entirerow.select, и вы увидите всю выбранную строку.

Измените SRTbl.listcolumns(4).databodyrange.entirerow.autofit на SRTbl.listcolumns(4).autofit, и оно должно работать.

...