我在Excel中有一个表(listobject),该表根据特定条件将文本加载到单元格中。
加载后,我想“自动拟合”列的单元格(列表对象的所有单元格都具有属性wraptext = true),但是我不希望对列5的单元格进行自动拟合(因为每个单元格包含很多行。 / p>
这是我到目前为止的代码
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列的单元格行。
谢谢
答案 0 :(得分:0)
在行上放置一个断点:
SRTbl.listcolumns(4).databodyrange.entirerow.autofit
。在IDE的立即窗格中,输入:
SRTbl.listcolumns(4).databodyrange.entirerow.select
,您将看到选中的整个行。
将SRTbl.listcolumns(4).databodyrange.entirerow.autofit
更改为SRTbl.listcolumns(4).autofit
,它应该可以工作。
答案 1 :(得分:0)
如果我们看一下您的初始代码在做什么,则它试图自动调整所选列的EntireRow中的每个单元格。您只需要将引用从.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