首页 > 解决方案 > Excel VBA代码在隐藏之前获取列的原始宽度

问题描述

我将完全空的列“E”的宽度设置为 29 磅并隐藏该列。

然后,我“转到”单元格 E1(通过 Control+G 命令)并查找“格式 -> 列宽”,它正确地将宽度显示为零,因为“E”列被隐藏了。

如果我随后取消隐藏 E 列,则该列的宽度将恢复为原来的 29。Excel 会以某种方式记住这一点。

我想查看 VBA 代码以在隐藏列之前检索它的原始宽度。

标签: excelvba

解决方案


答案是你真的做不到。但是,您可以快速取消隐藏它、获取宽度并重新隐藏该列,而用户甚至不会注意到。

Sub test()

    Debug.Print Range("A:A").ColumnWidth    '0

    'unhide the column
    Application.ScreenUpdating = False
    Range("A:A").EntireColumn.Hidden = False

    Debug.Print Range("A:A").ColumnWidth    '30

    'rehide the column
    Range("A:A").EntireColumn.Hidden = True
    Application.ScreenUpdating = True

    Debug.Print Range("A:A").ColumnWidth    '0

End Sub

推荐阅读