这是我做工程时的一段程序代码,你应该可以看明白了,它是直接操作Excel文件的 如有问题,可以给我发E:[email protected] '关于报表打印的Excel几个定义: Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim intDay As Integer '打开错误处理陷阱 On Error GoTo ErrGoto '------------------------------- '计算需要打印的天数 intDay = CInt((mfgTemp.Rows - 3) / 31) '代码正文 strSource = App.Path & "\报表.xls" '报表.xls就是一个模版文件 strDestination = App.Path & "\大循环推焦计划报表.xls" If Dir(strDestination) <> "" Then Kill strDestination End If FileCopy strSource, strDestination '将模版文件拷贝到一个临时文件 Set xlApp = New Excel.Application Set xlApp = CreateObject("Excel.Application") '激活EXCEL应用程序 xlApp.Visible = False '隐藏EXCEL应用程序窗口
Set xlBook = xlApp.Workbooks.Open(strDestination) '打开工作簿,strDestination为一个EXCEL报表文件 Set xlSheet = xlBook.Worksheets(1) '设定工作表 '------------------------------------------- For k = 0 To intDay - 1 '清空表格 With xlSheet For i = 4 To 22 .Range("B" & Format(i, "0")).value = "" .Range("D" & Format(i, "0")).value = "" .Range("F" & Format(i, "0")).value = "" .Range("H" & Format(i, "0")).value = "" .Range("J" & Format(i, "0")).value = "" .Range("L" & Format(i, "0")).value = "" .Range("N" & Format(i, "0")).value = "" .Range("P" & Format(i, "0")).value = "" .Range("R" & Format(i, "0")).value = "" .Range("T" & Format(i, "0")).value = "" Next i End With '------------------------------------------- '数据填写区 With xlSheet .Range("A2").value = mfgTemp.TextMatrix(2 + 31 * k, 1) '日期 .Range("E2").value = strZhouZhuan '周转时间 .Range("I2").value = strSanShiJian '二、三炉操作时间 .Range("L2").value = strYiShiJian '一炉操作时间 '------------------------------------------- '如果有检修时间,则填写检修时间 If Len(mfgTemp.TextMatrix(2 + 31 * k, 2)) > 10 Then .Range("A" & Format(22, "0")).value = Trim(mfgTemp.TextMatrix(2 + 31 * k, 2)) End If '填写计划时间 For i = 4 To 8 .Range("B" & Format(i, "0")).value = mfgTemp.TextMatrix(4 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(5 + 31 * k, i - 4) .Range("D" & Format(i, "0")).value = mfgTemp.TextMatrix(7 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(8 + 31 * k, i - 4) .Range("F" & Format(i, "0")).value = mfgTemp.TextMatrix(10 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(11 + 31 * k, i - 4) .Range("H" & Format(i, "0")).value = mfgTemp.TextMatrix(13 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(14 + 31 * k, i - 4) .Range("J" & Format(i, "0")).value = mfgTemp.TextMatrix(16 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(17 + 31 * k, i - 4) .Range("L" & Format(i, "0")).value = mfgTemp.TextMatrix(19 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(20 + 31 * k, i - 4) .Range("N" & Format(i, "0")).value = mfgTemp.TextMatrix(22 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(23 + 31 * k, i - 4) .Range("P" & Format(i, "0")).value = mfgTemp.TextMatrix(25 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(26 + 31 * k, i - 4) .Range("R" & Format(i, "0")).value = mfgTemp.TextMatrix(28 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(29 + 31 * k, i - 4) .Range("T" & Format(i, "0")).value = mfgTemp.TextMatrix(31 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(32 + 31 * k, i - 4) Next i '填写计划时间 For i = 10 To 16 .Range("B" & Format(i, "0")).value = mfgTemp.TextMatrix(4 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(5 + 31 * k, i - 5) .Range("D" & Format(i, "0")).value = mfgTemp.TextMatrix(7 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(8 + 31 * k, i - 5) .Range("F" & Format(i, "0")).value = mfgTemp.TextMatrix(10 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(11 + 31 * k, i - 5) .Range("H" & Format(i, "0")).value = mfgTemp.TextMatrix(13 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(14 + 31 * k, i - 5) .Range("J" & Format(i, "0")).value = mfgTemp.TextMatrix(16 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(17 + 31 * k, i - 5) .Range("L" & Format(i, "0")).value = mfgTemp.TextMatrix(19 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(20 + 31 * k, i - 5) .Range("N" & Format(i, "0")).value = mfgTemp.TextMatrix(22 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(23 + 31 * k, i - 5) .Range("P" & Format(i, "0")).value = mfgTemp.TextMatrix(25 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(26 + 31 * k, i - 5) .Range("R" & Format(i, "0")).value = mfgTemp.TextMatrix(28 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(29 + 31 * k, i - 5) .Range("T" & Format(i, "0")).value = mfgTemp.TextMatrix(31 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(32 + 31 * k, i - 5) Next i '填写计划时间 For i = 18 To 21 '填写检修时间 .Range("B" & Format(i, "0")).value = mfgTemp.TextMatrix(4 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(5 + 31 * k, i - 6) .Range("D" & Format(i, "0")).value = mfgTemp.TextMatrix(7 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(8 + 31 * k, i - 6) .Range("F" & Format(i, "0")).value = mfgTemp.TextMatrix(10 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(11 + 31 * k, i - 6) .Range("H" & Format(i, "0")).value = mfgTemp.TextMatrix(13 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(14 + 31 * k, i - 6) .Range("J" & Format(i, "0")).value = mfgTemp.TextMatrix(16 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(17 + 31 * k, i - 6) .Range("L" & Format(i, "0")).value = mfgTemp.TextMatrix(19 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(20 + 31 * k, i - 6) .Range("N" & Format(i, "0")).value = mfgTemp.TextMatrix(22 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(23 + 31 * k, i - 6) .Range("P" & Format(i, "0")).value = mfgTemp.TextMatrix(25 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(26 + 31 * k, i - 6) .Range("R" & Format(i, "0")).value = mfgTemp.TextMatrix(28 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(29 + 31 * k, i - 6) .Range("T" & Format(i, "0")).value = mfgTemp.TextMatrix(31 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(32 + 31 * k, i - 6) Next i '------------------------------------------- End With '---------------------------------------------------------------------------------- xlBook.Save '保存文件 xlSheet.PrintOut '执行打印 Next k xlApp.DisplayAlerts = False xlApp.Quit '退出EXCEL xlApp.DisplayAlerts = True Set xlApp = Nothing PrintPushPlan = True
如有问题,可以给我发E:[email protected] '关于报表打印的Excel几个定义:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim intDay As Integer
'打开错误处理陷阱
On Error GoTo ErrGoto
'-------------------------------
'计算需要打印的天数
intDay = CInt((mfgTemp.Rows - 3) / 31)
'代码正文
strSource = App.Path & "\报表.xls" '报表.xls就是一个模版文件
strDestination = App.Path & "\大循环推焦计划报表.xls"
If Dir(strDestination) <> "" Then
Kill strDestination
End If
FileCopy strSource, strDestination '将模版文件拷贝到一个临时文件
Set xlApp = New Excel.Application
Set xlApp = CreateObject("Excel.Application") '激活EXCEL应用程序
xlApp.Visible = False '隐藏EXCEL应用程序窗口
Set xlBook = xlApp.Workbooks.Open(strDestination) '打开工作簿,strDestination为一个EXCEL报表文件
Set xlSheet = xlBook.Worksheets(1) '设定工作表
'-------------------------------------------
For k = 0 To intDay - 1
'清空表格
With xlSheet
For i = 4 To 22
.Range("B" & Format(i, "0")).value = ""
.Range("D" & Format(i, "0")).value = ""
.Range("F" & Format(i, "0")).value = ""
.Range("H" & Format(i, "0")).value = ""
.Range("J" & Format(i, "0")).value = ""
.Range("L" & Format(i, "0")).value = ""
.Range("N" & Format(i, "0")).value = ""
.Range("P" & Format(i, "0")).value = ""
.Range("R" & Format(i, "0")).value = ""
.Range("T" & Format(i, "0")).value = ""
Next i
End With
'-------------------------------------------
'数据填写区
With xlSheet
.Range("A2").value = mfgTemp.TextMatrix(2 + 31 * k, 1) '日期
.Range("E2").value = strZhouZhuan '周转时间
.Range("I2").value = strSanShiJian '二、三炉操作时间
.Range("L2").value = strYiShiJian '一炉操作时间
'-------------------------------------------
'如果有检修时间,则填写检修时间
If Len(mfgTemp.TextMatrix(2 + 31 * k, 2)) > 10 Then
.Range("A" & Format(22, "0")).value = Trim(mfgTemp.TextMatrix(2 + 31 * k, 2))
End If
'填写计划时间
For i = 4 To 8
.Range("B" & Format(i, "0")).value = mfgTemp.TextMatrix(4 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(5 + 31 * k, i - 4)
.Range("D" & Format(i, "0")).value = mfgTemp.TextMatrix(7 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(8 + 31 * k, i - 4)
.Range("F" & Format(i, "0")).value = mfgTemp.TextMatrix(10 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(11 + 31 * k, i - 4)
.Range("H" & Format(i, "0")).value = mfgTemp.TextMatrix(13 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(14 + 31 * k, i - 4)
.Range("J" & Format(i, "0")).value = mfgTemp.TextMatrix(16 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(17 + 31 * k, i - 4)
.Range("L" & Format(i, "0")).value = mfgTemp.TextMatrix(19 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(20 + 31 * k, i - 4)
.Range("N" & Format(i, "0")).value = mfgTemp.TextMatrix(22 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(23 + 31 * k, i - 4)
.Range("P" & Format(i, "0")).value = mfgTemp.TextMatrix(25 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(26 + 31 * k, i - 4)
.Range("R" & Format(i, "0")).value = mfgTemp.TextMatrix(28 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(29 + 31 * k, i - 4)
.Range("T" & Format(i, "0")).value = mfgTemp.TextMatrix(31 + 31 * k, i - 4) & " " & mfgTemp.TextMatrix(32 + 31 * k, i - 4)
Next i
'填写计划时间
For i = 10 To 16
.Range("B" & Format(i, "0")).value = mfgTemp.TextMatrix(4 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(5 + 31 * k, i - 5)
.Range("D" & Format(i, "0")).value = mfgTemp.TextMatrix(7 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(8 + 31 * k, i - 5)
.Range("F" & Format(i, "0")).value = mfgTemp.TextMatrix(10 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(11 + 31 * k, i - 5)
.Range("H" & Format(i, "0")).value = mfgTemp.TextMatrix(13 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(14 + 31 * k, i - 5)
.Range("J" & Format(i, "0")).value = mfgTemp.TextMatrix(16 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(17 + 31 * k, i - 5)
.Range("L" & Format(i, "0")).value = mfgTemp.TextMatrix(19 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(20 + 31 * k, i - 5)
.Range("N" & Format(i, "0")).value = mfgTemp.TextMatrix(22 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(23 + 31 * k, i - 5)
.Range("P" & Format(i, "0")).value = mfgTemp.TextMatrix(25 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(26 + 31 * k, i - 5)
.Range("R" & Format(i, "0")).value = mfgTemp.TextMatrix(28 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(29 + 31 * k, i - 5)
.Range("T" & Format(i, "0")).value = mfgTemp.TextMatrix(31 + 31 * k, i - 5) & " " & mfgTemp.TextMatrix(32 + 31 * k, i - 5)
Next i
'填写计划时间
For i = 18 To 21
'填写检修时间
.Range("B" & Format(i, "0")).value = mfgTemp.TextMatrix(4 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(5 + 31 * k, i - 6)
.Range("D" & Format(i, "0")).value = mfgTemp.TextMatrix(7 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(8 + 31 * k, i - 6)
.Range("F" & Format(i, "0")).value = mfgTemp.TextMatrix(10 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(11 + 31 * k, i - 6)
.Range("H" & Format(i, "0")).value = mfgTemp.TextMatrix(13 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(14 + 31 * k, i - 6)
.Range("J" & Format(i, "0")).value = mfgTemp.TextMatrix(16 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(17 + 31 * k, i - 6)
.Range("L" & Format(i, "0")).value = mfgTemp.TextMatrix(19 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(20 + 31 * k, i - 6)
.Range("N" & Format(i, "0")).value = mfgTemp.TextMatrix(22 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(23 + 31 * k, i - 6)
.Range("P" & Format(i, "0")).value = mfgTemp.TextMatrix(25 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(26 + 31 * k, i - 6)
.Range("R" & Format(i, "0")).value = mfgTemp.TextMatrix(28 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(29 + 31 * k, i - 6)
.Range("T" & Format(i, "0")).value = mfgTemp.TextMatrix(31 + 31 * k, i - 6) & " " & mfgTemp.TextMatrix(32 + 31 * k, i - 6)
Next i
'-------------------------------------------
End With
'----------------------------------------------------------------------------------
xlBook.Save '保存文件
xlSheet.PrintOut '执行打印
Next k
xlApp.DisplayAlerts = False
xlApp.Quit '退出EXCEL
xlApp.DisplayAlerts = True
Set xlApp = Nothing
PrintPushPlan = True
PrintPushPlan = True
是什么意思?是控制卷纸的吗?
非常感動你的行爲!
我是仔是太感動了!