首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怪!VB导出数据EXCEL连续操作竟不能设置格式,该如何处理

2012-01-15 
怪!VB导出数据EXCEL连续操作竟不能设置格式用VB导出数据到EXCEL,窗口第一次运行导出的数据格式(自定义字体

怪!VB导出数据EXCEL连续操作竟不能设置格式
用VB导出数据到EXCEL,窗口第一次运行导出的数据格式(自定义字体,合并单元格)正常,第二次\第三次运行窗口进行导出时,竟不能按照自定义格式进行导出,请大哥们帮忙看看.代码如下:

private   sub   command3_click()
                                Dim   xlApp   As   Excel.Application
                                Dim   xlBook   As   Excel.Workbook
                                Dim   xlSheet   As   Excel.Worksheet
                                Set   xlApp   =   CreateObject( "Excel.Application ")

                                On   Error   Resume   Next
                                Set   xlBook   =   xlApp.Workbooks.add
                                Set   xlSheet   =   xlBook.Worksheets(1)
                                xlApp.Visible   =   False
                                xlSheet.Activate


                                If   Combo3.Text   =   "第一季度 "   And   Option2.Value   =   True   Then
                               
                                                '处理数据,填充Excel表
                                                xlSheet.Range(Cells(1,   1),   Cells(1,   9)).Merge     '合并单元格
                                                xlSheet.Cells(1,   1)   =   "资金发放明细表 "
                                                xlSheet.Range(Cells(1,   1),   Cells(1,   9)).Characters.Font.Name   =   "黑体 "       '设置标题为黑体,18号
                                                xlSheet.Range(Cells(1,   1),   Cells(1,   9)).Characters.Font.Size   =   18
                                       
                                                xlSheet.Rows.RowHeight   =   21
                                                xlSheet.Range(Cells(2,   1),   Cells(2,   256)).Characters.Font.Name   =   "宋体 "     '设置表头为宋体,10号,加粗


                                                xlSheet.Range(Cells(2,   1),   Cells(2,   256)).Characters.Font.Size   =   10
                                                xlSheet.Range(Cells(2,   1),   Cells(2,   256)).Characters.Font.FontStyle   =   "加粗 "
                                               
                                                xlSheet.Range(Cells(3,   1),   Cells(65536,   256)).Characters.Font.Name   =   "宋体 "     '设置内容为宋体,10号
                                                xlSheet.Range(Cells(3,   1),   Cells(65536,   256)).Characters.Font.Size   =   10
                                               
                                                xlSheet.Range(Cells(1,   1),   Cells(65536,   256)).HorizontalAlignment   =   3                 '设置内容为水平对齐
                                                xlSheet.Range(Cells(1,   1),   Cells(65536,   256)).VerticalAlignment   =   2                     '设置内容为垂直对齐
                                               
                                                xlSheet.Cells(2,   1)   =   "乡名 "
                                                xlSheet.Cells(2,   2)   =   "村名 "
                                                xlSheet.Cells(2,   3)   =   "组名 "
                                               
                                                xlSheet.Cells(2,   4)   =   "编号 "
                                                xlSheet.Cells(2,   5)   =   "户主 "


                                                xlSheet.Cells(2,   6)   =   "受益人 "
                                               
                                                xlSheet.Cells(2,   7)   =   "金额 "
                                                xlSheet.Cells(2,   8)   =   "资金说明 "
                                                xlSheet.Cells(2,   9)   =   "备注 "
                                               
                                                i   =   3
                                                While   Not   rs.EOF
                                                        xlSheet.Cells(i,   1)   =   rs.Fields( "xming ")
                                                        xlSheet.Cells(i,   2)   =   rs.Fields( "cming ")
                                                        xlSheet.Cells(i,   3)   =   rs.Fields( "zming ")
                                                       
                                                        xlSheet.Cells(i,   4)   =   rs.Fields( "twbhao ")
                                                        xlSheet.Cells(i,   5)   =   rs.Fields( "twhzhu ")
                                                        xlSheet.Cells(i,   6)   =   rs.Fields( "twsyren ")
                                                       


                                                        xlSheet.Cells(i,   7)   =   rs.Fields( "je ")
                                                        xlSheet.Cells(i,   8)   =   rs.Fields( "zjsming ")
                                                        xlSheet.Cells(i,   9)   =   rs.Fields( "bzhu ")
                                                        rs.MoveNext
                                                        i   =   i   +   1
                                                Wend

                                End   If


                                xlBook.SaveAs   Text1.Text           '保存Excel表格
                                MsgBox   "数据导出成功! ",   vbInformation,   systitle
                               
                                xlApp.Visible   =   True   '显示表格
                                Set   xlApp   =   Nothing   '交还控制给Excel
                                Set   xlBoook   =   Nothing
                                Set   xlSheet   =   Nothing

end   sub


谢谢!

[解决办法]
代码完全相同吗
[解决办法]
学习
[解决办法]
理论上不会这样的,请确保其它地方都正确。

把On Error Resume Next去掉再看。
[解决办法]
就是有问题才会这样,你把On Error Resume Next去掉程序就执行不了了,不信试看看。
[解决办法]
实在不喜欢 On Error Resume Next
[解决办法]
用代码实现EXCEL的设计比较麻烦,你可以自己设计好一个EXCEL表,然后调用这个设计好的表,将记录按设计好的格式导入到EXCEL里。我有一段代码如下,可以参考参考:
Private Sub Command3_Click()
Dim xlApp As excel.Application '定义EXCEL类


Dim xlBook As excel.Workbook '定义工件簿类
Dim xlsheet As excel.Worksheet
Dim sql As String
Dim msgtext As String
Dim objrst As ADODB.Recordset
sql = "select * from fenxianfenxi where time= ' " & Format$(DTPicker1.Value) & " ' "
Set objrst = ExecuteSQL(sql, msgtext)

If Dir(App.Path & "\Temp\excel.bz ") = " " Then '判断EXCEL是否打开
Set xlApp = CreateObject( "Excel.Application ") '创建EXCEL应用类
xlApp.Visible = False '设置EXCEL可见
Set xlBook = xlApp.Workbooks.Open(App.Path & "\temp\fxfx.xls ") '打开EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
xlsheet.Activate '激活工作表
xlsheet.Cells(2, 2) = Format$(DTPicker1.Value, "yyyy年mm月dd日 ")
xlsheet.Cells(2, 5) = Trim(Combo1.Text)
xlsheet.Cells(2, 10) = Trim(Label15.Caption)
xlsheet.Cells(2, 12) = Trim(Label16.Caption)
xlsheet.Cells(5, 1) = Trim(RTBox1.Text)

xlsheet.Cells(18, 2) = Trim(RTBox2.Text)
xlsheet.Cells(19, 2) = Trim(RTBox3.Text)
xlsheet.Cells(20, 2) = Trim(RTBox4.Text)
xlsheet.Cells(21, 2) = Trim(RTBox5.Text)
xlsheet.Cells(23, 1) = Trim(RTBox6.Text)
xlsheet.Cells(30, 1) = Trim(RTBox7.Text)
xlsheet.Cells(5, 8) = Trim(RTBox8.Text)
xlsheet.Cells(23, 8) = Trim(RTBox9.Text)
xlsheet.Cells(41, 1) = Trim(RTBox11.Text)
xlsheet.Cells(41, 8) = Trim(RTBox10.Text)
'给单元格1行驶列赋值
' xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL中的启动宏
xlsheet.PrintOut
xlBook.Close (False)
xlApp.Quit
End If
End Sub

热点排行
Bad Request.