做了一个程序,其中有一步:把mshflexgrid中的数据输出到excel文件打印,在我机子上运行正常。做成安装文件后,安装到别的机子上后,其它部分都正常,就是把mshflexgrid中的数据输出到excel文件打印,这一步不行,一运行到此处,程序就自动退出。不知何原因?谢谢!(在别的机子上重新编译后正常)代码如下:
Private Sub Command2_Click()
'打印报表
On Error GoTo exitt
Dim jsexcel As Excel.Application
Set jsexcel = New Excel.Application
Dim jsbook As Excel.Workbook
Dim jssheet As Excel.Worksheet
Set jsexcel = CreateObject("excel.application")
filename = App.path + "\xls\sum.xls"Set jsbook = jsexcel.Workbooks.Open(filename)Set jssheet = jsbook.Worksheets("单用户月报表")jsexcel.Visible = True
With jsexcel.ActiveSheet
.Range("B2") = Trim(Combo2.Text)
.Range("E2") = Trim(Combo4.Text) + Right("0" + (Combo3.Text), 2)
Dim i As Integer
Dim jilushu2 As Integer
jilushu2 = 32
If jilushu2 >= 1 Then
For i = 1 To jilushu2
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = 1
.Range("A" + CStr(i + 4)) = MSHFlexGrid1.Text
MSHFlexGrid1.Col = 2
.Range("B" + CStr(i + 4)) = MSHFlexGrid1.Text
MSHFlexGrid1.Col = 3
.Range("C" + CStr(i + 4)) = MSHFlexGrid1.Text
MSHFlexGrid1.Col = 4
.Range("D" + CStr(i + 4)) = MSHFlexGrid1.Text
MSHFlexGrid1.Col = 5
.Range("E" + CStr(i + 4)) = MSHFlexGrid1.Text
Next i
End If
'打印设置
With jssheet.PageSetup
.LeftFooter = "&""宋体,常规""第&P页" '页
.CenterFooter = "制表时间:" + CStr(Date)
.RightFooter = "制表人:" + Text1.Text
End WithEnd Withjsexcel.ActiveSheet.PrintPreview '打印预览
jsexcel.DisplayAlerts = False
jsexcel.Quit '退出EXCEL
jsexcel.DisplayAlerts = True
Set jssheet = Nothing '释放对象变量
Set jsbook = Nothing
Set jsexcel = Nothing
Exit Sub
exitt:Err.ClearEnd Sub
Private Sub Command2_Click()
'打印报表
On Error GoTo exitt
Dim jsexcel As Excel.Application
Set jsexcel = New Excel.Application
Dim jsbook As Excel.Workbook
Dim jssheet As Excel.Worksheet
Set jsexcel = CreateObject("excel.application")
filename = App.path + "\xls\sum.xls"Set jsbook = jsexcel.Workbooks.Open(filename)Set jssheet = jsbook.Worksheets("单用户月报表")jsexcel.Visible = True
With jsexcel.ActiveSheet
.Range("B2") = Trim(Combo2.Text)
.Range("E2") = Trim(Combo4.Text) + Right("0" + (Combo3.Text), 2)
Dim i As Integer
Dim jilushu2 As Integer
jilushu2 = 32
If jilushu2 >= 1 Then
For i = 1 To jilushu2
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = 1
.Range("A" + CStr(i + 4)) = MSHFlexGrid1.Text
MSHFlexGrid1.Col = 2
.Range("B" + CStr(i + 4)) = MSHFlexGrid1.Text
MSHFlexGrid1.Col = 3
.Range("C" + CStr(i + 4)) = MSHFlexGrid1.Text
MSHFlexGrid1.Col = 4
.Range("D" + CStr(i + 4)) = MSHFlexGrid1.Text
MSHFlexGrid1.Col = 5
.Range("E" + CStr(i + 4)) = MSHFlexGrid1.Text
Next i
End If
'打印设置
With jssheet.PageSetup
.LeftFooter = "&""宋体,常规""第&P页" '页
.CenterFooter = "制表时间:" + CStr(Date)
.RightFooter = "制表人:" + Text1.Text
End WithEnd Withjsexcel.ActiveSheet.PrintPreview '打印预览
jsexcel.DisplayAlerts = False
jsexcel.Quit '退出EXCEL
jsexcel.DisplayAlerts = True
Set jssheet = Nothing '释放对象变量
Set jsbook = Nothing
Set jsexcel = Nothing
Exit Sub
exitt:Err.ClearEnd Sub
filename = App.path + "\xls\sum.xls"Set jsbook = jsexcel.Workbooks.Open(filename)Set jssheet = jsbook.Worksheets("单用户月报表")
把它们变成
Set jsbook = jsexcel.Workbooks.Add
Set jssheet = jsbook.Worksheets("单用户月报表")
我的开发环境是access XP,别的机子是access 2000,是不是这的原因呢?
难道不向下兼容?