怎样用excel打印工资条,即每个人都带有列头
解决方案 »
- 请教:用Winsock定时向20多个终端发送数据,工作一段时间后Winsock会停机,求教。
- datagrid显示数据时能否显示序号
- 今天偶生日,高兴ing... 散分! 顺便纪念抗日英雄们!
- 请教如何用代码把一个文件的属性设置为隐藏文件和把一个文件的隐藏属性取消掉,谢谢!!!
- 请高手帮忙?对了马上给分!
- cttoolbar 控件在win8里显示为黑色,不显示出来,怎办?
- 关于VB 的一个程序问题 非常急 谢谢大家了(上)
- 请问一下怎么用VB做服务,就是。。
- ACCESS2000和ADO
- 请教数据库高手:用Vb6+Sql server7来开发大中型数据库系统应如何规划?!(一定给分)
- 如何删除随机文件中的任意一条记录!?
- 关于在程序中或者在配置文件中设置引入的EXCEL的版本的问题
形式如下:
姓名 性别 部门 工资
张了 男 业务部 600姓名 性别 部门 工资
张力 男 业务部 600
依次类推
On Error Resume Next
Dim PageNum As Integer '''打印的总的页数
Dim Sl As Integer '''每张能打印的条数
Dim c As IntegerIf Msf.Rows < 5 Then
s = MsgBox("没有需要打印的记录!!", vbInformation, "提示")
Exit Sub
End If'''''找出需要打印的页数
PageNum = 1
Sl = 17
c = 1
While Not (Sl * c) >= (Msf.Rows - 4)
c = c + 1
PageNum = PageNum + 1
Wend
''''''''''''''''''''''''''''''''
'''''用于显示打印状态
'Frame1.Visible = True
'Label7.Caption = "共 " & Vas.MaxRows & " 条记录"
'Label5.Caption = "共 " & PageNum & " 页"
'Label6.Caption = "已经打印 0 页"
''''''''''''''''''''For i = 1 To PageNum
'''>>>>>>>>>>>>>>>>>>>>>分打印的页数
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim file As String
FileCopy App.path & "\report\你的.xls", App.path & "\你的.xls"
file = App.path & "\你的.xls"
Set xlapp = New Excel.Application
'Set xlapp = CreateObject("excel.Application")
'xlapp.Visible = False '''''隐藏excel
Set xlbook = xlapp.Workbooks.Open(file)
xlbook.Application.DisplayAlerts = False
With xlbook.Sheets(1)
For R = 1 To Sl
For c = 1 To 22
Msf.Row = (i - 1) * Sl + 3 + R
Msf.Col = c - 1
.Cells(R + 6, c) = Msf.Text
Next
If Msf.Row = Msf.Rows - 1 Then Exit For
Next
.PageSetup.Orientation = xlLandscape
.PrintOut
xlapp.Visible = False
xlapp.ActiveWorkbook.Saved = True
xlapp.Quit
Set xlbook = Nothing
Set xlapp = Nothing
End With
Next
CMdPrint.Enabled = False
Exit Sub
err:
s = MsgBox(err.Description, vbInformation, "错误")
假设你在excel里a1:d7的数据如下:
姓名 性别 部门 工资
张1 男 业务部 600
张2 女 业务部 700
张3 男 业务部 600
张4 男 工业部 780
张5 女 食品部 600
张6 男 业务部 500
你先编辑一个宏,输入vba代码如下:
Sub 宏1()
' 宏1 Macro
' lsf 记录的宏 2004-4-13
i = Selection.Row - 1
For j = 1 To i - 1
Rows("1:1").Select
Application.CutCopyMode = False
Selection.Copy
Rows(j * 3).Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown
Next
End Sub
然后回到工作表,选中最后一行(在这个例子中是第7行,张6 男 业务部 500)
最后运行你刚才编辑的那个宏就可以了。
这只是一个例子,在实际运用时应该还可以改进一下。。
http://www.acreport.com/dispbbs.asp?BoardID=15&ID=84&replyID=208&skin=1工资条的例子:
http://www.efile.com.cn/efile/syy_tfsky/gzt.png
http://www.efile.com.cn/efile/syy_tfsky/gzt2.png具体的可以去以下地方看看:
http://syy_tfsky.efile.com.cn
www.acreport.comm