Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何检测列是否包含值不';t安装它';宽度是多少?_Excel_Ms Office_Add In - Fatal编程技术网

Excel 如何检测列是否包含值不';t安装它';宽度是多少?

Excel 如何检测列是否包含值不';t安装它';宽度是多少?,excel,ms-office,add-in,Excel,Ms Office,Add In,我需要检测列是否有一些需要更大宽度的值(在网格中显示为########)解决方案取决于数据如何输入单元格。。以下内容可能会帮助您开始: Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Cells.Columns.AutoFit End Sub 或者要影响一张图纸(例如在宏中),可以将其更改为通过图纸编号/名称 Sub SetColWidth() Sheets(1).Columns.AutoFi

我需要检测列是否有一些需要更大宽度的值(在网格中显示为########)

解决方案取决于数据如何输入单元格。。以下内容可能会帮助您开始:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Cells.Columns.AutoFit
End Sub
或者要影响一张图纸(例如在宏中),可以将其更改为通过图纸编号/名称

Sub SetColWidth()
    Sheets(1).Columns.AutoFit
End Sub
或者浏览所有表格,并立即设置:

Sub SetColWidthAllSheets()
    Dim s As Worksheet
    Application.ScreenUpdating = False
    For Each s In Sheets
        s.Columns.AutoFit
    Next
    Application.ScreenUpdating = True
    End Sub
希望这有帮助


编辑:在上述代码中添加了屏幕更新。

调用AutoFit的可能重复是不可接受的,它会使工作表闪烁,即使实际上没有更新宽度(并且我的数据经常更新,因此这种情况会一再发生)您可以尝试在autofit:Application.ScreenUpdate=False/True之前和之后关闭屏幕更新。无论如何,这是不可接受的,因为我只需要在有限的范围内(而不是整个列)进行自动调整