如果你在EXCEL里做
1,如何创建一个新的sheet:
     Sheets.Add
2,如何保存excel文件
     ActiveWorkbook.Save
3,如何将一个ado记录集输出到一个已经存在的并定义好格式的Excel表中
     明天在告诉你吧,怎么样,加点份表诚意先?

解决方案 »

  1.   

    以下有一个例子,ADO记录集可使用此方法写到一个已定义的数组中:
    Dim rsFileCodes As Recordset
    dim zbArray(4)
    zbArray(0)=rsFileCodes!FileCode '文件号;标准号;指标号
    ...另一模块,检测和运行Excel,如果启动Excel,则自动提示打开一个已存在的文件.
    添加工作表很简单,appWorld.Worksheets.Add
    Excel文件保存,wdWorld.Save;
    如果创建的Excel对象运行时,设置为隐藏,并运行结束时,使用了Quit,则Excel在退出时会提示是否保存.
    Option Explicit
    Public appWorld As Excel.Application
    Public wdWorld As Excel.Workbook
    Public shtWorld As Excel.WorksheetSub Run_Excel()
        ' 注意: 如果您的机器没有安装 Excel 97 ,
        ' 您必须更改应用到 Excel 95 对象库,
        ' 然后在上面的声明区, 更改变量声明从
        ' "wbWorld as Workbook" 到 "shtWorld As Worksheet"
        ' 然后更改所有引用从 "wbWorld" 到 "shtWorld"。
        
        If shtWorld Is Nothing Then
             On Error Resume Next '忽略错误
             Set appWorld = GetObject(, "Excel.Application") '查找一个正在运行的 Excel 拷贝
             If Err.Number <> 0 Then '如果 Excel 没有运行则
                 'Call Shell("Excel.exe", vbNormalFocus)
                 Set appWorld = CreateObject("Excel.Application") '运行它
                 appWorld.Visible = True
                 appWorld.Dialogs(xlDialogOpen).Show
             End If
             Err.Clear   ' 清除发生错误的 Err 对象
             
             On Error GoTo 0 '保留普通错误进程
            
             'already_RunExcel_write
             MsgBox "请先选择工作表,并选定单元格,然后确定。" _
             & Chr(13) & "再导出时将不提示选定单元格,请执行导出前选定单元格。" _
             & Chr(13) & "导出石化概算指标时按新概算编制办法中的模板格式。", vbOKOnly + vbInformation
             Set wdWorld = appWorld.ActiveWorkbook
             Set shtWorld = wdWorld.ActiveSheet
        End If
        already_RunExcel_write
    End SubSub already_RunExcel_write()
        Dim nActivecellRow As Long
        
       
        With shtWorld
            nActivecellRow = appWorld.ActiveCell.Row
            .Cells(nActivecellRow, 2).Value = zbArray(0) '文件号;标准号;指标号
            If nFileUserSelectRet = 4 Then '指标
                If IsEmpty(.Cells(nActivecellRow, 3).Value) Then
                   .Cells(nActivecellRow, 3).Value = zbArray(1) '指标名称规格
                End If
                .Cells(nActivecellRow, 4).Value = zbArray(2) '单位
                .Cells(nActivecellRow, 13).Value = zbArray(4) '人工费
                .Cells(nActivecellRow, 19).Value = zbArray(5) '辅材费
                .Cells(nActivecellRow, 20).Value = zbArray(6) '机械费
            Else
                .Cells(nActivecellRow, 3).Value = zbArray(1) '文件名
                .Cells(nActivecellRow, 4).Value = zbArray(2) '颁布年或日期
                .Cells(nActivecellRow, 5).Value = zbArray(3) '文件分类
                .Cells(nActivecellRow, 6).Value = zbArray(4) '版本;调用文件
            End If
        End With
        appWorld.ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate '自动下移一行
    End Sub
    ' 将对象设置为没有。
    Sub Excel_CleanUp()
        ' 这将强行执行 Microsoft Excel 的卸载,
        ' 以及它加载的其他程序及用户。
        Set appWorld = Nothing
        'Set wbWorld = Nothing
    End Sub
      

  2.   

    我想问这位老农哥哥,vb编程很难吗?vba编程很难吗?Thans to xiali() 
      

  3.   

    VB和VBA的编程原理是相通的。多实践就不会觉得难了。怎么不见你给分?问题没有解决吗?