在实际工作中,我们经常会遇到想将工作表中的数据(如下所示的“数据”工作表)导入到固定的表格(如下所示)中并打印。
上中的数据可能是我们陆续输入到工作表中的,可能是从多个工作表合并的,也可能是从其他地方例如网站上导入的。此时,想要以所示的格式打印每条数据信息。如果一行行数据分别录入,则费时费力,特别是遇到成百上千条数据时。
VBA最擅长解决这样的问题。
首先,在工作簿中创建一个名为“表格模板”的工作表,按打印的表格格式化,如下所示。
在VBE中输入下面的程序代码:
Sub printAllDatas()
‘数据记录工作表变量
Dim wksDatas As Worksheet
‘模板工作表变量
Dim wksTable As Worksheet
‘数据记录工作表中最后一行变量
Dim lngLastRow As Long
‘循环变量
Dim i As Long
‘将工作表赋给相应的变量
Set wksDatas = Worksheets(“数据”)
Set wksTable = Worksheets(“表格模板”)
‘获取数据记录工作表最后一行行号
lngLastRow = wksDatas.Range(“A”& Rows.Count).End(xlUp).Row
‘遍历数据记录工作表中数据行
使用Excel进行个人计划执行记录与统计分析
一转眼,2 19年已至4月,自从年初立下flag后,便努力朝着实现它的方向奔跑。有些执行得很好,比如每天更新 Excel微信,坚持每天学习,而有些则还没有开始。是时候该督促自已全面开始了!于是,制作了一个简单的计划执行情况统计分析表,加上少量的VBA代码,以方便自已每周检视计划的执行情况,提醒自已哪些没做,要赶快补上。
‘将相应数据填入模板工作表
For i = 2 To lngLastRow
‘将数据工作表中的数据填入模板
With wksDatas
wksTable.Range(“B3”) =.Range(“A” & i)
wksTable.Range(“F3”) =.Range(“B” & i)
wksTable.Range(“B4”) =.Range(“C” & i)
wksTable.Range(“D4”) =.Range(“D” & i)
wksTable.Range(“F4”) =.Range(“E” & i)
wksTable.Range(“B5”) =.Range(“F” & i)
wksTable.Range(“F5”) =.Range(“G” & i)
wksTable.Range(“B6”) =.Range(“H” & i)
wksTable.Range(“F6”) =.Range(“I” & i)
wksTable.Range(“B7”) =.Range(“J” & i)
wksTable.Range(“B8”) =.Range(“K” & i)
End With
‘打印
wksTable.PrintOut
Next i
End Sub
运行代码,即可实现数据打印。
代码的图片版如下:
使用VBA,也很容易将数据按模板表格形式,拆分成独立的工作表。有兴趣的朋友可以试试。
excel批量修改多个工作簿文件中同一位置的数据
最近,有位朋友咨询:“有很多Excel文件是从软件中直接生成的,有些数据**.**KN是软件自动填写上去的,但是因为数据单位的问题,每次都需要将其手动更改为***.*KN。一般来说,都是几十个这样的文件,手动修改的工作量很大,所以想请教一下,看有没有简便的方法。” 他给的工作簿中,要修改两个位置的数据,分别为单元格G