Private Sub Command2_Click()
 Dim xlApp As Excel.Application
 Dim xlBook As Excel.Workbook
 Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
    For i = 1 To 10
        For n = 1 To 4
          xlSheet.Cells(i, n).Value = n * i '向表格中添加数据
        Next
    Next
    xlBook.SaveAs "d:\blue-sun.cn.xls" '保存为文件
    xlApp.Visible = True '显示表格
    Set xlApp = Nothing
End Sub
这段代码可以新建一个excel表来添加数据并保存到硬盘,大家能不能帮我改一改,我需要在已经打开的excel表中添加数据,不是新建一个工作表来添加,而且我需要连续地添加数据,就是说不断按按钮,不断向excel表添加数据。以上是09年的帖子,有人回复但是也没能解决这个问题?我在网上搜了也没搜到,是不是不能实现呀?我试了好多方法都是可以再打开一个EXCEL然后往不同的表格内赋值!哪位高手有相关经验呢?最好是调试过的,要代码!

解决方案 »

  1.   

    已经打开的表格估计只能找到相关区域使用sendkey之类的添加数据了
      

  2.   

    改为:
    Set xlBook = xlApp.Workbooks.Open("d:\blue-sun.cn.xls")另外,你的程序用法有点问题
      

  3.   

    楼主你真够笨的。告诉你代码,你还不会用,别学习编程了Private Sub Command1_Click()
    Dim xlApp As Excel.Application
     Dim xlBook As Excel.Workbook
     Dim xlSheet As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("c:\blue-sun.cn.xls")
    Set xlSheet = xlBook.Worksheets(1)
      For i = 1 To 10
      For n = 1 To 4
      xlSheet.Cells(i, n).Value = 2 * n * i '向表格中添加数据
      Next
      Next
      xlBook.Save   '保存为文件
      xlApp.Visible = True '显示表格
      Set xlApp = Nothing
    End Sub
      

  4.   

    ok999ok:
    你的代码你调试过吗?你为什么不试试呢?
      

  5.   

    '先引用 Microsoft Excel 11.0 Object Library
    Option ExplicitPrivate Sub Command1_Click()
        
        Dim i As Long, n As Long
        Dim xlApp As New Excel.Application
        Dim xlBook As New Excel.Workbook
        Dim xlSheet As New Excel.Worksheet
        
        xlApp.Workbooks.Open "C:\Book1.xls"
        Set xlBook = xlApp.Workbooks(1) '设置工作薄1
        Set xlSheet = xlApp.Worksheets(1) '设置sheet1表
        xlBook.Sheets(1).Select '设置sheet1表
        
        'Set xlApp = CreateObject("Excel.Application")
        'Set xlBook = xlApp.Workbooks.Open("c:\blue-sun.cn.xls")
        'Set xlSheet = xlBook.Worksheets(1)
        
        For i = 1 To 10 'i行
          For n = 1 To 4 'n列
              xlSheet.Cells(i, n) = 2 * n * i '向表格中添加数据
          Next
        Next
        xlBook.Save '保存为文件
        xlApp.Visible = True '显示表格
        
        xlBook.Close
        xlApp.Quit
        Set xlSheet = Nothing
        Set xlBook = Nothing
        Set xlApp = Nothing
       
    End Sub
      

  6.   

    在已经打开的excel中添加数据,我能想到以下办法:
    vba:直接写个vba,让excel加载它.
    api:用findwindow,sendmessage之类的api填写数据至表格
    试试把createobject改成getobject,看能否改,没试过.
      

  7.   

    既然已经用了前期绑定,就不要用CreateObject创建对象,否则叫思维混乱。用New实例化即可。
      

  8.   

    已经打开的 Excel,对于你的程序来说,是一些外部窗口,虽然可以通过 FindWindow、FindWindowEx 以及带 WM_SETTEXT 参数的 SendMessage API 函数来写入数据,但还是较为复杂。如果你知道是从哪一个文件打开的,最好通过 FindWindow API 找到窗口,用 SendMessage 函数去关闭它。然后,再用你的程序打开。这样,整个 Excel 对象就在你程序的控制下。