有时收到网友一些魔性提问,我都诧异他们在什么情形下会用到这些需求。
但是既然人有问,咱就必答。
比如,是否能将打印区域设置为自动更新?
案例:
以下图 1 的数据表为基准设置打印区域,要求如下:
将下图 1 的工作表设置为打印区域;
如果第一行或 A 列有新增的文本单元格,无论是否有跳空,那么打印区域会自动拓展到最后一个文本单元格所在的行和列;
如果第一行或 A 列最后的单元格是数值,则该行或列不纳入打印范围
效果如下图 2至 5 所示。
解决方案:
开始今天的教程前,我们先来看一下按普通方法设置打印区域以后,如果增加内容是否会自动重设打印区域?
1. 选中 A1:D9 区域 --> 选择菜单栏的“页面布局”-->“打印区域”-->“设置打印区域”
2. 按 Ctrl+P,在打印预览区域就能看到刚才所设置的打印区域
3. 退出打印预览模式,在 F1 和 A11 单元格分别输入新的文本 --> 按 Ctrl+P
然而打印区域并未自动新增。
接下来开始今天的教程。
1. 选中数据表的任意单元格 --> 选中菜单栏的“页面布局”-->“打印区域”-->“设置打印区域”
2. 在弹出的对话框中点击“确定”
此时可以看到左上角的名称框中出现了一个名称 Print_Area。
3. 按 Ctrl+F3 --> 在弹出的对话框中选中名称 Print_Area --> 点击“编辑”按钮
4. 在“引用位置”输入以下公式 --> 点击“确定”:
=OFFSET(Sheet1!$A$1,0,0,MATCH("座",Sheet1!A:A),MATCH("座",Sheet1!1:1))
公式释义:
MATCH("座",Sheet1!A:A):
在 A 列中查找“座”字,并返回其行号;
“座”是一个编码很大的汉字,如果函数查找完整列都没有精确匹配到,也没有找到比它编码更大的字,就会返回最后一个文本单元格的行号
MATCH("座",Sheet1!1:1):同理,可以在第 1 行中查找,并返回最后一个文本单元格的列号
OFFSET(Sheet1!$A$1,0,0,...,...):以 A1 为起点,行、列都不偏移,引用的行高和列宽分别为上述两个 match 函数返回的值
5. 点击“关闭”
6. 现在,在 E1 单元格中输入“物理”--> 按 Ctrl+P
打印区域就自动纳入了刚才增加的 E 列。
7. 退出打印预览模式,在 A11 单元格中输入“龙淑芬”--> 再次按 Ctrl+P
刚才新增的 11 行也自动进入了打印区域。
8. 我们再试一下,在工作表中随意输入一些数字后 --> 按 Ctrl+P
因为新第一行和第一列新增的单元格并非文本,所以所在行和列不会被打印。
9. 但是如果把 G1 和 A13 单元格中的数值改成文本 --> 再按 Ctrl+P
所有内容都出现在打印区域中了。