我经常在 Excel 中创建表格,其中某些单元格包含大量文本,而其他单元格仅包含单个数字或其他一些短值。启用单元格中的文本换行,然后增加行高并自动调整列宽,我的工作表中会浪费大量空间。
我想要一个“智能”功能,可以最小化未使用的空白。有这样的功能吗?或者有没有一种足够简单的算法,即使在更大的纸张上也可以手动执行?
以下是我所指的几个例子:
水平方向浪费了大量空间
垂直浪费空间
这可能相当不错
合并单元格后,情况开始变得复杂,如本例和下例所示
合并单元格的第二个示例
经过进一步思考,我意识到我正在寻找的算法不能太幼稚,并且可能/需要不同的优化策略:
- 简单:在极端情况下,它可能最终使包含大量文本的单元格变得非常高,例如每行只有一个字母或至少一个单词。显然这是不可取的。
- 通常我认为整个活动区域呈方形是最有效的。在这种情况下,优化周长可能是最佳策略。但是,如果您想在矩形纸张上打印或在矩形屏幕上查看,则有必要牺牲一些优化以确保数据适合一张纸/屏幕。
答案1
您可以使用 VBA 获取单元格中的字符数量,然后使用该数字来调整列宽。
类似于 B 列中的最大字符数->将列宽调整为 xx。