我一直在努力做一个简单的导入VBA命令来从另一个Excel工作表中引入数据,其中包含我们使用的报告工具中的数据。数据输出的方式是一个单元格包含多行文本,就好像有人用alt + enter来编写它来获得回车。
我已经尝试自动调整这些行以正确显示数据,但是当我这样做时,它会自动调整为一行文本。有没有办法让我可以自动调整多行文本,最好是通过VBA?
我之前尝试过使用自动调整大小的代码,但由于我之前说过的问题,自动调整只使其成为一行,因此它无法正常工作
For counter = 1 To entries
Rows(counter).EntireRow.AutoFit
Next
编辑:我应该提到需要自动调整的单元格是一个合并的单元格,它是文本包装的。抱歉不包括它。
答案 0 :(得分:0)
如果我的单元格包含长文本,则使用行(计数器).EntireRow.AutoFit将无法显示所有文本。在使用代码之前,我需要将列的宽度设置为最大值:
Columns("A:AA").ColumnWidth = 200 'depends on possible max width and which columns
Columns("A:AA").EntireColumn.AutoFit
For counter = 1 To entries
Rows(counter).EntireRow.AutoFit
Next i
答案 1 :(得分:0)
问题可能是单元格格式(换行)
试试这种方式
'I set number of rows and columns only for example
entries = 10
LastCol = 20
Set Rng = Range(Cells(1, 1), Cells(entries, LastCol))
For Each mCell In Rng
If Not mCell.Value = "" Then
If mCell.Address <> mCell.MergeArea.Address Then
mStr = CStr(mCell.Value)
mLF = 1
For x = 1 To Len(mStr)
If Mid(mStr, x, 1) = vbCr Or Mid(mStr, x, 1) = vbLf Then
mLF = mLF + 1
End If
Next x
mHeight = mLF * 7 'Set the value you need for each line of text
Range(mCell.MergeArea.Address).RowHeight = mHeight
End If
End If
Next mCell
编辑:
如果您在不同的行上合并了单元格,可以尝试这样的方法:
{{1}}