排除某些单元格/行时自动调整Excel中的列宽

t1rydlwq  于 2023-02-14  发布在  其他
关注(0)|答案(4)|浏览(209)

我已经找了很多次相关的问题,但是我从来没有找到一个类似的问题。每个人都想知道如何调整列宽,这很容易,我有更细致的问题。
我喜欢自动调整,使干净的外观表,并确保一切都是可见的(又名;ctrl-a,双击列之间的顶部),但如果您有一个单元格有一段很长的文本(如表格底部的注解),它会使该列像400像素宽,以捕获整个文本,而我只是想让它根据我的列标题或表格数据更新。我希望能够标记此文本单元格,以便Excel自动调整时忽略它。
如果你不介意它居中,那么你可以设置单元格对齐方式(和右边的一个单元格)为“居中”,它将被忽略。但是,就像我上面的例子一样,我经常希望这个文本左右对齐,不允许C.A.S.工作。
有人能够做到这一点吗?
编辑:经过十多年的搜索,我找到了答案。它是使用中心横跨选择如上所述,但使用自定义数字格式,以自动填补文本与空格所需的理由。我把下面的图像放在一起,以帮助解释这个图形。
这里也有可复制的自定义数字格式(它们只需要应用到最左边的单元格,所有受影响的单元格都需要居中):
[left对齐,删除引号,注意结尾空格]“General* ;概述 * ;概述 * ;一般性意见
[右对齐,删除引号]“
概述;* 一般情况;* 一般情况;* 常规”x1c 0d1x

isr3a4wc

isr3a4wc1#

不确定这是不是设计好的,但根据我的经验,自动调整大小会忽略任何打开了自动换行功能的单元格。因此,可以考虑在自动调整大小时为要忽略的区域打开自动换行功能。

5w9g7ksd

5w9g7ksd2#

如果您可以使用VBA解决方案,则可以编写一个自定义例程来执行此操作。在此示例中,如果您要“仅自动调整页眉”传递区域,则它实际上会将页眉复制到空白单元格,运行自动调整,然后将自动调整的宽度应用于列:

Sub AutoFitHeader(HeaderRow As Range)

  Dim col As Range
  Dim ws As Worksheet
  Set ws = ActiveWorkbook.Worksheets.Add
  ws.Visible = xlSheetHidden

  Application.DisplayAlerts = False

  For Each col In HeaderRow
    ws.Range("A1").Value = col.Value
    ws.Columns("A").AutoFit

    col.EntireColumn.ColumnWidth = ws.Columns("A").ColumnWidth
  Next col

  ws.Delete

  Application.DisplayAlerts = True

End Sub

然后这样称呼它:

AutoFitHeader Range("A1:H1")
ca1c2owp

ca1c2owp3#

我能够找到一个基于使用中心交叉选择(TLDR:CAS的好处在于,对于任何自动调整列宽的目的,Excel忽略任何使用CAS文本对齐方式的单元格中键入的文本,只要您的CAS文本右侧至少有一个空白单元格也使用CAS(因此它不能只在一个单元格上工作)。这只适用于您希望居中的文本,但对于其他任何内容,您需要修改此方法。
对于"右对齐",请在最左侧的单元格中输入[您的文本]以合并到对齐区域中,CAS区域(在"格式"、"对齐"、"水平"、"居中"下),选择包含文本的单元格,然后输入自定义数字格式("格式"、"数字"、"自定义"):
[* 概述;* 概述;* 概述;* 概述]
这对每个正片使用标准的通用格式;负的;零;文本值,但会获取每个值并重复("*")一个字符(""),将其填充到值之前,以填充整个选定内容。
对于左对齐,它与上面的完全相同,除了自定义数字格式为:
概述 *;概述 *;概述 *;概述 *
注意 * 后面的最后一个空格。
请参见图形/Excel格式的示例:

lp0sw83n

lp0sw83n4#

CAS和自定义格式答案的附录:如果在严格按照说明操作后,您的长文本在两个单元格之间显示为#######[“设置该单元格对齐方式(并向右对齐1个单元格)“],只需进一步向右增加应用CAS的单元格数量,直到文本正确显示。这对我在Office 365中起作用。

相关问题