平时我们在使用Excel制作表格的时候,经常会遇到由于文本内容较多,导致这些内容无法在一个单元格中完全显示。常规的方法是将单元格设置为“自动换行”,但是这样会影响整个文件的美观。下例是某小区的入住登记数据,备注一栏的内容较多,如果使用常规的自动换行,表格美观度显然较差(图1)。现在我们可以有更好的方法实现文本显示,而且并不会影响表格的美观度。
图1 自动换行设置导致表格不美观
借力VBA自动滚动显示
上述示例中的备注栏文本显示,我们可以借助VBA将其设置为滚动显示,效果类似很多门店上的LED显示屏,这样文本在单元格中会自动滚动。
点击“开发工具→Visual Bisic”,在打开的VB设计窗口中点击“插入→模块”,接着到https://dwz.cn/iCjz8vx8(提取码: etmw)下载所需的代码文件,下载后将其中的代码粘贴到右侧的代码窗口中并保存(图2)。
图2 输入代码
这里代码的作用实际上是建立一个标签,利用VBA脚本调整单元格内文字的左右边距,当边距等于文字长度时重复循环,这样就可以实现文本左右自动滚动了。代码中默认文本在D1单元格中显示,大家可以根据自己的实际需要进行更改。
返回Excel窗口,取消D1单元格的自动换行显示,将其行距调整到和其他单元格一致。接下来点击“开发工具→宏”,就可以看到这里新增了两个宏,其中“滚动显示”是执行文本的左右滚动显示,另一个则是停止滚动(图3)。
图3 查看宏
为了方便操作,选中“滚动显示”,点击“选项”,为其设置一个快捷键Ctrl+W。同样选中另一个宏,为其设置快捷键Ctrl+S(图4)。
图4 设置快捷键
以后如果要滚动显示上述文本,我们只要按下Ctrl+W就可以让D1的文本自动滚动显示。为了加强显示效果,还可以将单元格的底色设置为黑色,将文本设置为白色,这样的效果就类似LED显示屏了(图5)。
图5显示效果
插入控件实现水平滚动显示
上述方法是使用VBA脚本实现的,操作比较复杂,对其实于新手还可以使用插入滚动条的方法手动显示文本数据。
定位到D1单元格,点击“开发工具→插入→ActiveX控件→文本框控件”,在D1单元格上插入一个文本框控件(图6)。
图6 插入控件
选中插入的控件,在文本框控件上点击右键选择“属性”,在打开的属性设置窗口中,将“MultiLine”(即是否开启文本框的自动换行)属性设置为“True”。继续更改“ScrollBars”属性为“2-fmScrollBarsVertical”,即纵向滚动条(图7)。
图7 更改属性
小提示:
如果将“scrollbars”的属性值设置为1,则为水平滚动条,我们可以根据自己的实际需要进行设置。
完成上述操作后返回Excel,将文本框的大小调整为和D1单元格大小一致,接着点击“设计模式”退出设计。现在在上述文本框中输入内容“备注:这里入住时间以户主在本小区登记为准”,就可以看到文本框中会自动出现上下滚动条,点击滚动条即可显示单元格中的所有内容了(图8)。
图8 文本框控件上下滚动显示
表头数据跨列居中显示
如果较多文本内容是表头数据,常规的方法是使用合并居中显示。由于合并单元格会给后续数据的统计和排序带来麻烦,所以对于这类表头数据其实可以借助跨列居中的方法来实现,这样既不用合并单元格,又可以完整显示表头的内容。
首先选中A1~E1单元格,右击选择“设置单元格格式”,接着切换到“对齐”标签,在水平对齐方式下选择“跨列居中”(图9)。
图9 设置单元格格式
返回Excel窗口,就可以看到原来在A1中的文本内容变为跨列居中显示了,这样不仅可以完整显示文本内容,而且由于没有合并单元格,对于后续的筛选、排序操作也不会有任何影响(图10)。
图10 跨列居中显示所有文本