如题。。
比如有五百张需要输入电脑的excel表格,格式都一样,只有一个或者几个固定单元格的内容不同,怎样才能做到快捷的输入(最好是能做成excel或者word,不方便的话只要能单独打印出来也可以)。。。。可以做成单独的工作表也可以做成工作簿。
用VBA,超级简单的小题。
给你做个实例:
看上图,作一个模板表。
如A至D列,B2和D2是需要在生成新表时重新填写的单元格。
H列和I更是所有的人名和分数等数据。
看上图,按图上顺序,
1、点击顶部的开发工具(如果没有的话,点左上角的文件--选项--自定义功能区--把开发工具打上勾,就会在顶部出现开发工具)
2、点击打开VB编辑器
3、在上图中画蓝色框的区域内,在任意一顶上点右键---插入模板
4、点击模板
5、在模板右侧输入或粘贴代码
6、点击画红色圆圈的按钮,执行代码,就会立刻生成所有的新表。
看上图,代码执行完毕后,你会发现生成了很多以人名命名的新表哦,而且每个表的B2和D2都是已经填好数据的哦。
为方便你复制,代码如下:
Sub 生成工作表()
Dim i&, irow&
irow = Sheets("模板表").Range("H" & Rows.Count).End(3).Row '赋值irow等于H列最后一行的行号
For i = 2 To irow Step 1 '循环语句,从2循环到irow,步长1,(步长为1时也可以省略不写 step 1)
Sheets("模板表").Copy After:=Sheets(Sheets.Count) '复制模板表为新工作表,放在最后一个表的后面
ActiveSheet.Name = Range("H" & i) '赋值活动工作表(即新复制出来的工作表)的工作表名为H列i行单元格的值
Range("B2") = Range("H" & i) '赋值B2单元格为H列i行单元格的值
Range("D2") = Range("I" & i) '赋值D2单元格为I列i行单元格的值
Columns("H:I").Delete '删除H列和I列。至此,一个新工作表已经生成完毕。
Next '返回循环,处理下一个i
MsgBox "处理完毕!", , "提示"
End Sub
看上图,再给你一段代码,删除表的代码,此代码的作用是,不删第一个表,删除第2个及后面的所有表,方便你两段代码反复测试着玩。
要执行哪一段代码,就先把鼠标点击进该段代码中(Sub至End sub之间)的任意位置,再点那个执行代码的按钮即可。
为方便你复制代码,删表代码如下:
Sub 删除从第2个表至最后的表()
Application.DisplayAlerts = False '关闭警告
Dim i%
For i = Sheets.Count To 2 Step -1 '循环语句,从Sheets.Count循环到2,步长-1(即倒序循环)
Sheets(i).Delete '删除Sheets(i)工作表
Next '返回循环,处理下一个i
Application.DisplayAlerts = True '开启警告
MsgBox "处理完毕!", , "提示"
End Sub
你好!!!能写个VBA代码供参考吗???
追答没有具体表格无法写VBA的
本回答被网友采纳差不多这个意思。。。表格需要逐个打印。。
比如报名表,姓名简介地址等等内容不同,但是性别学校填报日期等等这些又都是一样的。。