如果您有以下代码:
Sub AutoFitColumns()
'AutoFit columns
Cells.EntireColumn.AutoFit
End Sub
这时候可能就遇到了AutoFit无法正常工作的问题。原因是Cells.EntireColumn.AutoFit仅使用了列中的无格式数据进行自适应,而不使用列头中的任何格式数据。这就导致了并没有按照列头的宽度自动调整列宽度。
为了解决这个问题,您需要使用以下代码来手动自适应列:
Sub ManualAutoFitColumns()
Dim c As Range
For Each c In Range("A1:Z1") '目标范围,这里以A1到Z1为例
c.EntireColumn.AutoFit
Next c
End Sub
在这个代码片段中,我们首先定义了一个Range对象。For Each语句会遍历这个对象内的每一个列头范围,包括A1到Z1。在循环体中,我们使用c.EntireColumn.AutoFit来手动调整当前列宽。这就会包含列头中的格式数据,让列宽更精确地自适应。