因为表头比较复杂,所以我用Excel中做了个表头,再把ADO记录集输出到这个表中,但结果却自动插入列,显示在左边,即把原表头往右挤了,而不是套入格式,代码如下Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))请问能不能套入格式?

解决方案 »

  1.   

    输出到EXCEL是要指定输出的位置
      

  2.   

    这个你要查一下VBA里的具体设置
      

  3.   

    我认为你应该先做个模板,然后在把数据输入到相应的地方
    给你个例子,记得要在“引用”中添加"Misrosoft Excel9.0 Objec Library"
    Set xlapp1 = CreateObject("excel.application")              'create the excel object
          Set xlbook1 = xlapp1.Workbooks.Open(CommonDialog1.FileName)           'FileName changed
          xlapp1.Workbooks(CommonDialog1.FileTitle).Activate
          
          xlbook1.Worksheets(1).Cells(1, 1) = Text1.Text & "年" & "按单位板块查询的完成资产统计表"
          xlbook1.Worksheets(1).Cells(2, 7) = "金额单位:元"
          
          xlbook1.Worksheets(1).Cells(3, 1) = "序号"
          xlbook1.Worksheets(1).Cells(3, 2) = "单位板块"
          xlbook1.Worksheets(1).Cells(3, 3) = "计划总额"
          xlbook1.Worksheets(1).Cells(3, 4) = "总计"
          xlbook1.Worksheets(1).Cells(3, 5) = "完成资产额"
          xlbook1.Worksheets(1).Cells(3, 6) = "预付款"
          xlbook1.Worksheets(1).Cells(3, 7) = "付款额"
          xlbook1.Worksheets(1).Cells(3, 8) = "备注"
          strsql = Text3.Text
          Set rs = ExecuteSQL(strsql, msgtext)
          For i = 4 To rs.RecordCount + 3
             xlbook1.Worksheets(1).Cells(i, 1) = i - 3
             xlbook1.Worksheets(1).Cells(i, 2) = rs.Fields("单位板块")
             xlbook1.Worksheets(1).Cells(i, 3) = rs.Fields("金额")
             xlbook1.Worksheets(1).Cells(i, 4) = rs.Fields("配套金额")
             xlbook1.Worksheets(1).Cells(i, 5) = rs.Fields("完成资产")
             xlbook1.Worksheets(1).Cells(i, 6) = rs.Fields("预付款额")
             xlbook1.Worksheets(1).Cells(i, 7) = rs.Fields("付款额")
                      
             wczcje = wczcje + rs.Fields("完成资产")
             yfkje = yfkje + rs.Fields("预付款额")
             fkje = fkje + rs.Fields("付款额")
             jhje = jhje + rs.Fields("金额")
             zjje = zjje + rs.Fields("配套金额")
             rs.MoveNext
          Next
      

  4.   

    但结果却自动插入列,显示在左边,即把原表头往右挤了,而不是套入格式我不明白为什么
    你不在数据传入以后再设计表头呢,表头是很复杂,但你可以从一个设计好的Excel模板中拷贝过来啊.只要你在传入数据的时候预留表头的位置就行了.
    对于怎么用程序拷过来,我想你一定比我还清楚.
      

  5.   

    可以的
    Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a4"))a1就是从第一行开始,设置从表头下的一行就可以了
      

  6.   

    谢谢cly2004(学习ing!) ,这样的反向思维得到的方法也许是唯一的办法了
    to wenhongL(三脚猫):我上面代码只是举例子,其实你随便指到哪个单元格都是不行的,不如也写个代码试试,别想当然啊