自动调整一个单元格的行,但不是单元格的所有行
Autofit a row with respect to a cell but not all the rows of the cells
我在 Excel 中有一个 table (listobject),它根据特定条件在单元格中加载文本。
加载后,我想 "autofit" 列的单元格(列表对象的所有单元格都有 属性 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 列的单元格的行。
谢谢
在行上打个断点:
SRTbl.listcolumns(4).databodyrange.entirerow.autofit
.在 IDE 的立即窗格中输入:
SRTbl.listcolumns(4).databodyrange.entirerow.select
你会看到整行都被选中了。
将 SRTbl.listcolumns(4).databodyrange.entirerow.autofit
更改为 SRTbl.listcolumns(4).autofit
应该可以。
如果我们查看您的初始代码在做什么,它会尝试自动调整您所选列的 EntireRow 中的每个单元格。您只需要将引用从 .EntireRow 更改为 .EntireColumn。
此处令人困惑的地方似乎在于语法,因为您可能希望能够直接从 table 或范围对象调用 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
我在 Excel 中有一个 table (listobject),它根据特定条件在单元格中加载文本。
加载后,我想 "autofit" 列的单元格(列表对象的所有单元格都有 属性 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 列的单元格的行。
谢谢
在行上打个断点:
SRTbl.listcolumns(4).databodyrange.entirerow.autofit
.在 IDE 的立即窗格中输入:
SRTbl.listcolumns(4).databodyrange.entirerow.select
你会看到整行都被选中了。
将 SRTbl.listcolumns(4).databodyrange.entirerow.autofit
更改为 SRTbl.listcolumns(4).autofit
应该可以。
如果我们查看您的初始代码在做什么,它会尝试自动调整您所选列的 EntireRow 中的每个单元格。您只需要将引用从 .EntireRow 更改为 .EntireColumn。
此处令人困惑的地方似乎在于语法,因为您可能希望能够直接从 table 或范围对象调用 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