当前位置:编程学习 > VB >>

VB可以向已经打开的EXCEL赋值吗?

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然后往不同的表格内赋值!哪位高手有相关经验呢?最好是调试过的,要代码! --------------------编程问答-------------------- 已经打开的表格估计只能找到相关区域使用sendkey之类的添加数据了。。。 --------------------编程问答-------------------- 改为:
Set xlBook = xlApp.Workbooks.Open("d:\blue-sun.cn.xls")

另外,你的程序用法有点问题 --------------------编程问答-------------------- 一楼能说详细吗?2楼你的方法不行!你那个方法总是打开新的. --------------------编程问答-------------------- 楼主你真够笨的。告诉你代码,你还不会用,别学习编程了

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
--------------------编程问答-------------------- ok999ok:
你的代码你调试过吗?你为什么不试试呢? --------------------编程问答--------------------
'先引用 Microsoft Excel 11.0 Object Library
Option Explicit

Private 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
--------------------编程问答-------------------- 在已经打开的excel中添加数据,我能想到以下办法:
vba:直接写个vba,让excel加载它.
api:用findwindow,sendmessage之类的api填写数据至表格
试试把createobject改成getobject,看能否改,没试过. --------------------编程问答--------------------
引用楼主  的回复:
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.Workboo……

既然已经用了前期绑定,就不要用CreateObject创建对象,否则叫思维混乱。用New实例化即可。 --------------------编程问答-------------------- 已经打开的 Excel,对于你的程序来说,是一些外部窗口,虽然可以通过 FindWindow、FindWindowEx 以及带 WM_SETTEXT 参数的 SendMessage API 函数来写入数据,但还是较为复杂。

如果你知道是从哪一个文件打开的,最好通过 FindWindow API 找到窗口,用 SendMessage 函数去关闭它。然后,再用你的程序打开。这样,整个 Excel 对象就在你程序的控制下。 
 
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,