今天要帮别人打印一个表格部分内容如下,除去日期部分其余部分都是固定不变的,每天都要把日期更改为前一天然后打印一份
列一 | 日期 |
---|---|
x | 2021/9/2 |
x | 2021/9/2 |
x | 2021/9/2 |
普通人的做法,手动更改日期然后复制粘贴日期,然后打印一张
想了想还是感觉有点复杂,自己突然想到这些日期都是一样的,能不能编程语言里面直接使用一个变量呢?
当然可以,让这些单元格等于某个固定的单元格的值比如=A1,设置A1的值回车就行了,比复制粘贴要强一些
但这样还是需要一个日期一个日期的修改,于是想有没有一种方法可以一次性打印个30张打印每张的时候修改为对应的日期?
答案是可以的,使用VBA,代码执行的逻辑如下
循环{
修改日期为要打印的日期;
打印;
}
实际过程中还加了一个输入要打印的天数,操作如下
ALT+F11
打开EXCEL的VBA窗口在VBA窗口中选择菜单
插入
,再选择菜单项模块
输入下面的代码
关闭宏窗口,将EXCEL文件保存为
启用宏的工作簿(*.xlsm)
在
视图
选项卡,宏
组中,点击宏
按钮在弹出的执行宏窗口中,选择
PrintDate
,点击执行
按钮,在弹出的对话框中输入打印次数,点击确定即可
Sub PrintDate()
Dim n As Integer
n = InputBox("请输入打印天数") * 1
For i = 1 To n
Range("C3:C18") = "2021/9/" & i
ActiveSheet.PrintOut Copies:=1
Next
End Sub