如题,
如下是如何创建一个excel对象的代码,支持一次写入数据,问题是这样,我需要向对已创建的这个excel对象进行多次写入,可是现在不支持这种功能,我试想将这多次操作产生的数据存进一系列的数组中,然后在一次性保存到excel表中。不知哪位高手,给解决一下这个问题。
奖励分不是问题哦~~
    Dim xlApp As Excel.Application
    Dim xlbook As Excel.Workbook
    Dim xlsheet As Excel.Worksheet
    Set xlApp = New Excel.Application
    Set xlApp = CreateObject("Excel.Application")
                                               
    Set xlbook = xlApp.Workbooks.Open(excelFile)    Set xlsheet = xlbook.Worksheets(1)
    excelFile = App.Path & "\Print.xls"  
    

解决方案 »

  1.   

    先擦除再写
    xlsheet.Cells.Clear
      

  2.   


    我需要多次写入的数据,这些数据同时存在的。
    不需要clear
      

  3.   

    那就从最后一行开始写啊
    最后一行的行数 xlsheet.usedrange.rows.count
      

  4.   


    这是我的模板excel表格,我需要把多次数据分别写到那些表格中去。请问有什么好法吗???
      

  5.   


    其实也好说,就是把这10组数据攒齐了,一起写入Excel表格。有没有好方法呢?sysdzw  实验室的砖瓦  多谢回帖。
      

  6.   

    Dim xlApp As Object,wk as Object,st as Object '这样声明时不必引用对象库
    Set xlApp = CreateObject("Excel.Application") 
    set wk = xlApp.Workbooks.add("你的模板文件名") 
    Set st = wk.Worksheets(1) 
    ......'你的数据保存代码
    wk.SaveAs "你的文件保存的位置及名称"  
        
      

  7.   

     楼主的意思是第一次写完毕后 关闭程序 且保存excel 第二次打开程序的时候 又接着填写下一个表格是不是?
     如果是这样,你可以先记录你关闭时候的行和列,比如第一次关闭时刚好把第一个表格写完,那就记录下行:13行 列:8  表格个数: 1 那第二次打开程序的时候 就在记录的这些数据基础上加一个数啊 比如行:13+0   列 8+3  表格个数:1+1 这就是第二个表格了啊  (表格个数用于记录什么时候行数该加一个数字,比如:在第一排的表格填写完毕后,该转到第二排的表格,那就得用表格个数来判断。)
      

  8.   

    要1000分    
        Dim xlApp As New Excel.Application 
        Dim xlBook As New Excel.Workbook 
        Dim xlsheet As New Excel.Worksheet 
        Set XlApp= CreateObject("Excel.Application") 
    'Set xlBook = XlApp.Workbooks.Open(App.Path & "\Print.xls) '没密码    
    Set xlBook = XlApp.Workbooks.Open(App.Path & "\Print.xls", , , ,123456)'密码为123456                                              
        Set xlsheet = xlBook.Worksheets(1) 
        XlApp.Visible   =   True  
      

  9.   

    123456是EXCEL的打开密码,防止别人打开
      

  10.   


    Try            xlsApp = CreateObject("Excel.Application")
                xlsBook = xlsApp.Workbooks.Add
                xlsBook.Worksheets.Add()
                xlsSheet = xlsBook.Worksheets(1)            xlsApp.Application.Visible = True            Clipboard.Clear()
                Clipboard.SetDataObject(str.ToString)            With xlsSheet                .Activate()
                    .Columns("B").numberformatlocal = "@"
                    xlsSheet.Range("B:B").HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft
                    .Range("A1").Select() '这里就是你要写的位置
                    .Paste()
                    .Cells.Select()
                    .Cells.EntireColumn.AutoFit()
                    .Range("A1").Select()
                End With
            Catch ex As Exception
                MsgBox(ex.ToString, MsgBoxStyle.Exclamation, Me.Text)
                CNCOST.Close()
                Me.Enabled = True
                Exit Sub
            End Try
      

  11.   

    自己试着改一下'先引用excel *.0 object library
      Public ex   As Excel.Application
      Public wb   As Excel.Workbook
      Public sh   As Excel.WorksheetPrivate Sub Command3_Click()
      Dim i As Long
      Dim arr() As String, strFile As String
        Set ex = CreateObject("Excel.Application")
       ' Set wb = ex.Workbooks.Add '新建excel
        Set wb = ex.Workbooks.Open("c:\A.xls")
        Set sh = wb.Sheets(1)
          strFile = "10,20,30,50,100" '第一组数据
           arr = Split(strFile, ",")
             For i = 0 To UBound(arr)
              sh.Cells(1, i + 1) = arr(i) '第一行第一列
             Next i
             
           strFile = "A,B,C,D,E" '第二组数据
            arr = Split(strFile, ",")
             For i = 0 To UBound(arr)
               sh.Cells(2, i + 1) = arr(i)
             Next i
             
             sh.Range("G12") = "会了吧"
         ' Count = ex.ActiveSheet.UsedRange.Rows.Count
         ' Count = ex.Application.WorksheetFunction.CountA(Columns("C:C"))
       ' wb.Close SaveChanges:=True    '直接关闭
       ' ex.Quit
       
         ex.Visible = True
        Set ex = Nothing
        Set wb = Nothing
        Set sh = Nothing
    End Sub
      

  12.   

    无非就是改CELL里面的两个变量而已
      

  13.   

    一次能写,多次也一定能的。可以多了解一下Excel的宏代码。
      

  14.   

    如果你的规律如图所示,规律并不复杂,代码也简单用一个不会用到的单元格记录写入次数,
    假如横行6个小表
    row=(原来写入次数 mod 6) * 9 +1
    col=(原来写入次数 \ 6) * 14 +1