怎样用EXCEL表格做自动流水账优秀文档.docx
《怎样用EXCEL表格做自动流水账优秀文档.docx》由会员分享,可在线阅读,更多相关《怎样用EXCEL表格做自动流水账优秀文档.docx(24页珍藏版)》请在冰豆网上搜索。
怎样用EXCEL表格做自动流水账优秀文档
怎样用EXCEL表格做自动流水账
1先做好一个普通的EXCEL现金流水账,填入相关数据,在“方向”栏里如图对应的是G6单元格,在G6里输入=IF(H5+E6-F6>,“借“,“贷“)回车,这组函数的意思是“当H5+E6-F6大于0时,显示“借”,否则显示“贷”
2这样在G6单元格内就出现了一个“借”,再选中“余额金额”栏里相应单元格,如图H6,输入“=IF(G5=”借”,H5+E6-F6,E6-F6-H5)”,回车,这段意思是:
当G5单元格显示“借”时,H6单元格等于H5+E6-F6,否则E6-F6-H5
3这时余额栏里也出现了应有的金额数字,再选中刚才输入“借、贷”函数的G6单元格,当光标移到单元格右下角时,光标由空心+字变成实心+字时按住鼠标左键沿“方向”单元向下拖动,直至账尾,这个过程也是将G6单元格内的函数按对应关系变量复制到其他“方向”单元内的过程
4这时向应的单元格内出现了“借”或“贷”
5再用同样方法将余额单元格H6当中的函数变量复制到相应位置,这时相应余额也自动计算出来了,由于余额中有了数据,前面的“借、贷”方向也发生了改变,至此自动计算方向与余额的电子账就有了
注意:
在借方金额与贷方金额为0时,里面也要填数字0,否则后面的函数公式计算不出来.
Excel表格如何分页打印、自动分页、取消分页等技巧
经常在Excel中制作表格时,我们不可能仅仅只作一个表格,有时可能会在一个工作簿中制作多个表格。
但我们又希望将所有的表格分别打印到每一张纸上面,每张纸上面只打印一个表格,那么,我们应该如何实现呢?
有许多朋友都是重建新工作簿,再将表格一个一个的剪切到新工作簿中,每个工作簿里面放一个表格,最后再一个个的打印出来。
虽说这种方法可以实现,但是操作比较繁琐。
其实Word联盟(wordlm)有更好更简单的方法,利用Excel中的分页功能,在一个工作簿中打印出多个表格,每张纸上面打印一个表格。
Excel中如何设置手动分页打印
现在工作簿中有4个表格,我希望每张纸上面打印一个表格,分别用4张纸打印出来。
①进入“视图”选项卡,单击“工作簿视图”选项组中的“分页预览”;
②上图“分页预览”中只有2页,分别是“第1页”和“第2页”。
我们将光标移动右下角边框处,当鼠标变成双箭头时,按住左键不放,拖动边框,直到看见“第3页”和“第4页”的时候就放开鼠标;(如下图)
③现在Excel就可以打印4个页面出来了,但我们还需要将上面两个表格剪切到下面来才行,剪切完成如下图:
好了,现在分页已经完成了,打印工作簿的话,会打印4张纸,每张纸上面一个表格,下面再来说说如何自动分页打印!
Excel中自动分页页面设置纵向/横向设置:
单击“页面布局”选项卡,单击“页边距”,选中最下面的“自定义边距”,在弹出的“页面设置”中可以选中“纵向”或“横向”;
分页的页边距设置:
然后进入“页边距”设置上、下、左、右的边距大小;
所以页面的页眉页脚设置:
你也可以自定义页任意设置眉和页脚。
Excel中快速插入分页符和删除分页符
先将光标定位到需要加分页的位置,然后单击“页面布局”选项卡中的“分隔符”,选中“插入分页符”或者“删除分页符”。
如果想重新设置所以的分页效果,可以选中“重设所有分页符”。
利用VBA实现Excel电子表格(工资报表)自动分页统计
王志华
摘要:
利用VBA编程,在Excel中启用宏命令,实现工资报表自动分页统计,方便工资统计和查找报表错误,减少统计误差,提高工作效率。
关键词:
VBAExcel工资报表分页统计
一、问题的提出:
随着Excel制作的电子报表越来越多,应用越来越广泛,常常遇到对其项目进行分页统计的问题,尤其是在工资报表系统中,在手动对工资项目进行分页统计时,如果出现人员增加、减少或人员调动产生的变换位置的情况,就得对动辄几十、上百页的报表重新对每页手动设置公式进行分页合计,再最后汇总,给报表的制作带来极大不便,增加了很大的工作量,降低了工作效率。
如果利用MicrosoftVisualBasicProject即VBA编辑宏命令,对报表进行自动分页、每页自动合计和最后总合计,将大大地减少工作强度,提高统计工作的效率和准确性。
二、问题的解决(功能的实现):
1、打开Excel电子表格应用软件。
2、点击Excel窗口菜单,从下拉菜单中点击取消隐藏菜单项,弹出对话框如图:
3、然后点击确定,Excel自动切换到MicrosoftExcel–PERSONAL编辑中,如图所示:
4、点击Excel菜单栏里的工具菜单,点面下来菜单里的宏选项里的录制宏命令弹出录制新宏对话框,如图所示:
5、点击保存在的下来箭头,选择个人宏工作簿,然后点击确认,开始录制事先编辑好的自动分页汇总和删除分页统计的宏。
6、按Alt+F8键,弹出启动宏命令对话框,如图所示:
7、点击新建宏命令对话框中的编辑按钮,弹出如下对话框:
8、在模块中输入或编辑、调试事先编辑好的宏命令,如图所示:
9、具体自动分页汇总和、删除分页汇总宏命令如下:
Dimi,h,hh,t,l,x,rr,dr,tt,ls,cs,lleft,lrightAsInteger
DimrrrAsString
DimrCurrentCellAsRange'每一页之分页小计所在单元格
Dimr1stSubCellAsRange'小计区域第一个单元格
PublicSub自动分页汇总()
Cells(1,1).Select
OnErrorResumeNext
t=2
Do
i=InputBox("默认为10,不能超过一页的范围!
!
!
","请输入每页拟打印的行数",10)
Ifi<=0Ori=""Then
MsgBox("每页行数必须大于1!
")
Else
ExitDo
EndIf
Loop
i=Int(i)
h=InputBox("起始行数,默认为5","请输入起始行数",5)
x=i+h
lleft=InputBox("起始列数,默认为2列","请输入起始列",2)
lright=InputBox("最终列数,默认为倒数第0列","请输入最终列",0)
l=Range("A65536").End(xlUp).Row'本示例选定包含单元格B4的区域中B列顶端的单元格。
Range("B4").End(xlUp).Select
'ForRowCount=1ToSelection.Rows.Count'循环选择的每一行。
DoWhilel>=x
Rows(x+1).InsertShift:
=xlDown'在当前工作表中Rows(x+1)行插入空隔行
Forcolumncount=lleftToSelection.Columns.Count-lright'循环选择的每一列。
Range(Cells(x+1,1),Cells(x+1,lleft-1)).Merge'合并单元格
Cells(x+1,1)="本页合计"
Cells(x+1,columncount).Formula="=SUM(R[-"+CStr(i)+"]C:
R[-1]C)"
WithActiveSheet.Range(Cells(x+1,1),Cells(x+1,Selection.Columns.Count)).Borders'边框设置
.Line=xlBorderLine
.Weight=xlMedium'xlThin细线'xlThick粗线
.ColorIndex=3
EndWith
WithActiveSheet.Range(Cells(x+1,1),Cells(x+1,Selection.Columns.Count)).Font'字体设置
'.Size=14
.Bold=True
'.Italic=True
.ColorIndex=3
EndWith
WithActiveSheet.Range(Cells(x+1,1),Cells(x+1,Selection.Columns.Count)).Interior'设置单元格底色
'.ColorIndex=8'为青色
EndWith
Nextcolumncount
ActiveWindow.SelectedSheets.HPageBreaks.AddBefore:
=Rows(x+2)'在当前工作表中Rows(x+2)行插入分隔符
x=(i+1)*t
x=x+h-1
t=t+1
l=l+1
Loop
rr=lMod(i+1)
Rows(l+1).InsertShift:
=xlDown
SelectCaserr
Caseh+1Toi
hh=2
rr=rr-h
rrr=CStr((rr))
Forcolumncount=lleftToSelection.Columns.Count-lright'循环选择的每一列。
Range(Cells(l+1,1),Cells(l+1,lleft-1)).Merge'合并单元格
Cells(l+1,1)="本页合计"
Cells(l+1,columncount).Formula="=SUM(R[-"+CStr(rrr)+"]C:
R[-1]C)"
WithActiveSheet.Range(Cells(l+1,1),Cells(l+1,Selection.Columns.Count)).Borders'边框设置
.Line=xlBorderLine
.Weight=xlMedium'xlThin细线'xlThick粗线
.ColorIndex=3
EndWith
WithActiveSheet.Range(Cells(l+1,1),Cells(l+1,Selection.Columns.Count)).Font'字体设置
'.Size=14
.Bold=True
'.Italic=True
.ColorIndex=3
EndWith
WithActiveSheet.Range(Cells(x+1,1),Cells(x+1,Selection.Columns.Count)).Interior'设置单元格底色
'.ColorIndex=8'为青色
EndWith
Nextcolumncount
Caseh
hh=1
Case0Toh-1
hh=2
rr=rr+i-h+1
rrr=CStr((rr))
Forcolumncount=lleftToSelection.Columns.Count-lright'循环选择的每一列。
Range(Cells(l+1,1),Cells(l+1,lleft-1)).Merge'合并单元格
Cells(l+1,1)="本页合计"
Cells(l+1,columncount).Formula="=SUM(R[-"+CStr(rrr)+"]C:
R[-1]C)"
WithActiveSheet.Range(Cells(l+1,1),Cells(l+1,Selection.Columns.Count)).Borders'边框设置
.Line=xlBorderLine
.Weight=xlMedium'xlThin细线'xlThick粗线
.ColorIndex=3
EndWith
WithActiveSheet.Range(Cells(l+1,1),Cells(l+1,Selection.Columns.Count)).Font'字体设置
'.Size=14
.Bold=True
'.Italic=True
.ColorIndex=3
EndWith
WithActiveSheet.Range(Cells(x+1,1),Cells(x+1,Selection.Columns.Count)).Interior'设置单元格底色
'.ColorIndex=8'为青色
EndWith
Nextcolumncount
EndSelect
Rows(l+hh).InsertShift:
=xlDown
Forcolumncount=lleftToSelection.Columns.Count-lright'循环选择的每一列。
Range(Cells(l+hh,1),Cells(l+hh,lleft-1)).Merge'合并单元格
Cells(l+hh,1)="总合计"
Cells(l+hh,columncount).Formula="=SUM(R[-"+CStr(l-h+1)+"]C:
R[-1]C)/2"
WithActiveSheet.Range(Cells(l+hh,1),Cells(l+hh,Selection.Columns.Count)).Borders'边框设置
.Line=xlBorderLine
.Weight=xlMedium'xlThin细线'xlThick粗线
.ColorIndex=3'3红色、4绿色
EndWith
WithActiveSheet.Range(Cells(l+hh,1),Cells(l+hh,Selection.Columns.Count)).Font'字体设置
'.Size=14
.Bold=True
'.Italic=True
.ColorIndex=3
EndWith
WithActiveSheet.Range(Cells(l+hh,1),Cells(l+hh,Selection.Columns.Count)).Interior'设置单元格底色
.ColorIndex=8'为青色
EndWith
Nextcolumncount
Range(Cells(1,1),Cells(l+1,2)).Locked=True
ActiveSheet.Protect
Cells(1,1).Select
EndSub
PublicSub删除分页汇总()
OnErrorResumeNext
ActiveSheet.Unprotect
Cells.Locked=False
ActiveSheet.ResetAllPageBreaks
lastline=[a65536].End(xlUp).Row
Setr1stSubCell=Range("Ah")'本例名单从Ah单元格开始
ForEachrCurrentCellInRange(r1stSubCell,r1stSubCell.End(xlDown))
Fori=lastlineTohStep-1
IfRange("A"&i)="本页合计"OrRange("A"&i)="总合计"ThenRange(i&":
"&i).EntireRow.Delete
Nexti
NextrCurrentCell
EndSub
10、关闭宏编辑模板,退到Excel电子表格应用软件中。
11、在Excel菜单栏框内点击右键,弹出对话框如图:
11、在弹出一个对话框点击自定义,弹出一个新对话框如图:
12、在自定义对话框中选择命令标签,并点击新菜单选项,将新菜单拖入Excel菜单栏中新建菜单,并改名为我的菜单。
13、然后再在自定义对话框中选择命令标签,并点击宏选项,将自定义菜单项拖入Excel菜单栏中我的菜单下,新建弹出式菜单,并改名为自动分页统计和删除分页统计如图:
14、然后点击指定宏,弹出对话框如图:
15、在弹出的对话框中分别为我的菜单中的自动分页汇总和删除分页汇总指定相应的宏命令。
16、然后点击Excel菜单栏中的窗口菜单中的隐藏命令,把MicrosoftExcel–PERSONAL页面隐藏。
17、到此为止,用VBA实现Excel电子表格的自动分页汇总就编辑完毕。
三、举例验证效果(功能的验证):
1、调入任意一张Excel工资表,如图所示:
2、点击Excel菜单栏中我的菜单,在弹出的下来菜单中,点击自动分页汇总,弹出如下对话框:
3、输入需要每页打印的行数,默认输入为10行,点击确定弹出如下对话框:
4、输入需要统计工资表的起始行数,即表头行数,默认为3行,点击确定弹出如下对话框:
5、输入需要统计工资表的起始列数,默认为5列,点击确定弹出如下对话框:
6、输入需要统计工资表的最终列数,默认为倒数第2列,点击确定,即完成自动分页汇总,结果下对话框:
7、如果删除分页统计,则点击Excel菜单栏中我的菜单,在弹出的下拉菜单中,点击删除分页汇总菜单,则删除原来统计项,恢复为原来的表格内容,如下图所示:
8、可以重新进行任意行的分页统计,例如非整页统计结果如下所示:
9、功能演示完毕,功能得到认定。
此宏命令能将其他Excel电子报表进行类似的按要求分页、每页自动合计和最后总合计,避免了手动完成这部分工作的繁琐,降低了工作强度,提高了工作效率,如果是长达几十、上百页的报表,更能表现其效果了。