使用excel创建表格时避免调整单元格大小

Dav*_*vid 5 microsoft-excel microsoft-excel-2016

我在互联网上进行了广泛的搜索,但我发现的所有问题的解决方案都是关于如何防止 excel 调整现有表格或数据透视表中单元格的大小。我还在选项下的设置中进行了搜索,但没有看到任何可以解决我的问题的设置。

我的确切问题是我有一个工作表,我想在其中创建多个表,按年份存储有关我的薪水的信息。我已经做了第一年的第一个表格,我已经调整了列的大小以使数据易于阅读。但是,当我选择新标题并单击Format as Table 时,Excel 会调整所有列的大小以适应新文本。

我的一些标题不太适合列,但此表仅供个人使用,我更喜欢标题有明确的名称(虽然更长),以便以后更容易地引用它们。所以我希望有人能解决这个问题。不得不再次手动调整所有列的大小真的很烦人。

rob*_*CTS 2

有两种方法可以实现此目的:

\n\n
    \n
  1. 最简单的方法是先创建一个空表,然后按照您想要的方式设置它。
  2. \n
  3. 使用宏保存所选内容的列宽,将其格式化为表格,然后恢复列宽。可以将宏设置为与快捷键或命令按钮一起使用,也可以将其添加到功能区。甚至可以让它拦截Format as Table功能区工具。
  4. \n
\n\n

对于方法2,将以下代码添加到标准模块中:

\n\n
\'============================================================================================\n\' Module     : <any standard module>\n\' Version    : 0.1.0\n\' Part       : 1 of 1\n\' References : N/A\n\' Source     : https://superuser.com/a/1332155/763880\n\'============================================================================================\nOption Explicit\n\nPublic Sub ToggleTable_NoResize()\n       Dim \xc2\xa1 As Long\n\n  Const s_DefaultStyle As String = "TableStyleMedium9" \' Change this for a different default style\n\n  Dim asngColumnWidths() As Single\n  ReDim asngColumnWidths(1 To Selection.Columns.Count)\n  For \xc2\xa1 = LBound(asngColumnWidths) To UBound(asngColumnWidths)\n    asngColumnWidths(\xc2\xa1) = Selection.Columns(\xc2\xa1).ColumnWidth\n  Next \xc2\xa1\n  Application.ScreenUpdating = False\n    Dim loNewTable As ListObject\n    On Error Resume Next\n      Set loNewTable = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)\n    On Error GoTo 0\n    If loNewTable Is Nothing Then\n      Dim loExistingTable As ListObject\n      On Error Resume Next\n        Set loExistingTable = Selection.ListObject\n      On Error GoTo 0\n      If Not loExistingTable Is Nothing Then\n        loExistingTable.Unlist\n      End If\n    Else\n      loNewTable.TableStyle = s_DefaultStyle\n      For \xc2\xa1 = LBound(asngColumnWidths) To UBound(asngColumnWidths)\n        Selection.Columns(\xc2\xa1).ColumnWidth = asngColumnWidths(\xc2\xa1)\n      Next \xc2\xa1\n    End If\n  Application.ScreenUpdating = True\n\nEnd Sub\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用快捷键进行设置:

\n\n
    \n
  • 确保显示“开发人员”选项卡
  • \n
  • Alt+ L+ P+ M; 选择宏;按Options\xe2\x80\xa6; 并设置快捷键
  • \n
\n\n

笔记:

\n\n

表格的默认样式可以在代码中指定的位置进行更改。

\n\n

作为一项附加功能,再次运行宏会将表格转换回正常的单元格范围。

\n