vb如何同时往三个excel表中复制数据,我能复制一个,怎么往后两个表中也添加数据

如题所述

可以试试 ACCESS----》文件----》获取外部数据-----》导入----》文件类型 选择 Microsoft Excel----》根据提示可以完成导入!

VB 要很多的代码

祝你好运

如果你非得用vb那以下代码 仅供参考

VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。

一、 VB读写EXCEL表:

VB本身提自动化功能可以读写EXCEL表,其方法如下:

1、在工程中引用Microsoft Excel类型库:

从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。表示在工程中要引用EXCEL类型库。

2、在通用对象的声明过程中定义EXCEL对象:

Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet

3、在程序中操作EXCEL表常用命令:

Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件
xlApp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表
xlSheet.Cells(row, col) =值 '给单元格(row,col)赋值
xlSheet.PrintOut '打印工作表
xlBook.Close (True) '关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏
xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏

4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得VB与EXCEL脱节。

二、 EXCEL的宏功能:

EXCEL提供一个Visual Basic编辑器,打开Visual Basic编辑器,其中有一工程属性窗口,点击右键菜单的"插入模块",则增加一个"模块1",在此模块中可以运用Visual Basic语言编写函数和过程并称之为宏。其中,EXCEL有两个自动宏:一个是启动宏(Sub Auto_Open()),另一个是关闭宏(Sub Auto_Close())。它们的特性是:当用EXCEL打含有启动宏的工簿时,就会自动运行启动宏,同理,当关闭含有关闭宏的工作簿时就会自动运行关闭宏。但是通过VB的自动化功能来调用EXCEL工作表时,启动宏和关闭宏不会自动运行,而需要在VB中通过命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 来运行启动宏和关闭宏。

三、 VB与EXCEL的相互勾通:

充分利用EXCEL的启动宏和关闭宏,可以实现VB与EXCEL的相互勾通,其方法如下:

在EXCEL的启动宏中加入一段程序,其功能是在磁盘中写入一个标志文件,同时在关闭宏中加入一段删除此标志文件的程序。VB程序在执行时通过判断此标志文件存在与否来判断EXCEL是否打开,如果此标志文件存在,表明EXCEL对象正在运行,应该禁止其它程序的运行。如果此标志文件不存在,表明EXCEL对象已被用户关闭,此时如果要使用EXCEL对象运行,必须重新创建EXCEL对象。

四、举例:

1、在VB中,建立一个FORM,在其上放置两个命令按钮,将Command1的Caption属性改为EXCEL,Command2的Caption属性改为End。然后在其中输入如下程序:

Dim xlApp As Excel.Application '定义EXCEL类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlsheet As Excel.Worksheet '定义工作表类
Private Sub Command1_Click() '打开EXCEL过程
If Dir("D:\temp\excel.bz") = "" Then '判断EXCEL是否打开
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.Visible = True '设置EXCEL可见
Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls") '打开EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
xlsheet.Activate '激活工作表
xlsheet.Cells(1, 1) = "abc" '给单元格1行驶列赋值
xlBook.RunAutoMacros (xlAutoOpen) 运行EXCEL中的启动宏
Else
MsgBox ("EXCEL已打开")
End If
End Sub

Private Sub Command2_Click()
If Dir("D:\temp\excel.bz") <> "" Then '由VB关闭EXCEL
xlBook.RunAutoMacros (xlAutoClose) '执行EXCEL关闭宏
xlBook.Close (True) '关闭EXCEL工作簿
xlApp.Quit '关闭EXCEL
End If
Set xlApp = Nothing '释放EXCEL对象
End
End Sub

2、在D盘根目录上建立一个名为Temp的子目录,在Temp目录下建立一个名为"bb.xls"的EXCEL文件。

3、在"bb.xls"中打开Visual Basic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下程序存盘:

Sub auto_open()
Open "d:\temp\excel.bz" For Output As #1 '写标志文件
Close #1
End Sub
Sub auto_close()
Kill "d:\temp\excel.bz" '删除标志文件
End Sub

4、运行VB程序,点击EXCEL按钮可以打开EXCEL系统,打开EXCEL系统后,VB程序和EXCEL分别属两个不同的应用系统,均可同时进行操作,由于系统加了判断,因此在VB程序中重复点击EXCEL按钮时会提示EXCEL已打开。如果在EXCEL中关闭EXCEL后再点EXCEL按钮,则会重新打开EXCEL。而无论EXCEL打开与否,通过VB程序均可关闭EXCEL。这样就实现了VB与EXCEL的无缝连接。

引用方法为:点击VB工程菜单,选择引用,选择Microsoft DAO 3.6 Compatibility Library并确定
'------------------------------------------------
Private Sub Form_Load() '窗口load过程
Dim myDb As Database
Dim myTb As Recordset
Set myDb = OpenDatabase("c:\data.mdb") '打开数据库文件
Set myTb = myDb.OpenRecordset("xpress") '打开表文件
If myTb.RecordCount < 4 Then '表文件记录小于4条退出程序
Set myTb = Nothing
Set myDb = Nothing
Exit Sub
End If

myTb.MoveFirst '记录指针移动到第一条
myTb.Move 2 '记录指针向下移动2条即移动到第三条
Text1.Text = myTb!DefaultValue 'text1赋值为xpress表的DefaultValue字段的第三条记录
myTb.MoveNext '记录指针下移一条
Text2.Text = myTb!DefaultValue 'text2赋值为xpress表的DefaultValue字段的第四条记录
Set myTb = Nothing
Set myDb = Nothing

End Sub

Private Sub Command1_Click()
Dim myDb As Database
Dim myTb As Recordset
Set myDb = OpenDatabase("c:\data.mdb")
Set myTb = myDb.OpenRecordset("xpress")
myTb.MoveFirst '记录指针移动到第一条
myTb.Move 2 '记录指针下移到第三条
myTb.Edit '数据库为编辑状态
myTb!DefaultValue = Text1.Text '数据库xpress表的DefaultValue字段第三条赋值为text1的文本
myTb.Update '保存更改的记录

myTb.MoveNext '记录指针下移一条到第四条
myTb.Edit
myTb!DefaultValue = Text2.Text
myTb.Update

Set myTb = Nothing
Set myDb = Nothing

End Sub
另外,团IDC网上有许多产品团购,便宜有口碑

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-15
按住CTRL在表格的下边将要用粘贴内容的表单全部选择,在第一张表单中粘贴内容,其它的就都有了,此方法同时可以用于几张表单的格式更改(都佩更改的那张表单的格式相同)。

excel vba中 我想要复制一个区域的内容到另外一张表上,但是复制区域的...
Range(Cells(1, 1), Cells(2, i)).Copy Sheets(2).Range("a1")如果要打开Sheets(2)工作表,在最后加上语句:Sheets(2).Activate 用以下语句也可以:Range("a1").Resize(2, i).Copy Sheets(2).Range("a1") 说明: Range对象的Resize属性是用于调整指定区域的大小,并返回调整后的单元格区域。 语法:Resiz...

在excel中进行复制操作时,如果只需粘贴一次,可以在目标区域直接按什么...
等一下,什么,查找?这路子一下子就变宽了。查找有一系列给力的函数,比如(V)LOOKUP、INDEX等,其中VLOOKUP不能直接使用,因为不满足它的查找条件,除非使用辅助列在两个区域左边各加一列相同字段,如1\/2\/3等,就可以实现。但是太麻烦,不能满足我们想立马粘贴的需求。那看看INDEX吧,哎呀哈,貌似...

Excel有两个sheet,想把第一个sheet中的数据提取到第二个表上
同时按Ctrl+Shift+Enter三键输入数组公式 即可得到结果

我这有两个Excel的表格 怎么对比两份表格的重复项目
Lookup value填你要以哪个单元格为查找链接的条件(这个条件必须是这两个表中相同的那个条件),此表中是A1格,就是两个表中都有的药品名称 Table array填你要链接哪个范围里的数据,此表为sheet2中的A到B列 Col index num填你要链接这个范围中的哪一列数据,此格要链接的是第2列,填2 Range lo...

EXCEL如何根据前一个工作表自动在新的工作表生成数据?
1,插入新的一个工作表2,鼠标光标切换到工作表13,全选工作表1所有单元格,复制4,鼠标点击1步骤插入的新工作表的A1单元格,粘贴。宏录制结束。取得代码。然后在工作表1旁边追加一个按钮控件。双击。将之前的代码复制到该事件下。 lanniao007 | 发布于2012-03-21 举报| 评论 0 0 在工作表1的单元格改变...

查找多份EXCEL表中指定单一数值的方法
用到vlookup函数实现每个车间以第二列的值为参照数值对应其他工作文档第二列参照数值的第十列的值复制到一个空白列(用到excel扩展功能),要注意的是,要做十次,详细的暂未有时间说。做完后要把数据转换成数值或文本格式,要不引用数据一变动就白做了。如需帮助可把数据发给我我帮你处理,我能很快...

如何将excel表格里4个工作表用函数将信息链接起来呢
可以用VLOOKUP配合Column函数使用,以下图为例:要在Sheet2建立数据连接,则Sheet2表的B2单元格输入公式:=VLOOKUP($A2,Sheet1!$A:$C,COLUMN(),0)公式向右拖到C2再向下拖拉复制,结果如下:

EXCEL在筛选状态下怎么把复制到的数据粘贴到一列中的不同行
我能想到的就是先添加一列序号列,按序列下拉,则每一行有一个序号 然后再按照你要筛选的那个字段排序,这样相同的数据就到一起了 然后再进行复制粘贴 之后再按序号进行排序,这样就得到想要的结果了 如果不需要序号就把那一列删除

EXcel表格,怎么才能锁住昨天的填写的数据,让今天改不了昨天的数据...
手动方法:将已经获得的数据复制--选择性粘贴-数值,这样就不会再被其他表格影响了。自动方法:要用到VBA。大致的意思是通过一个变量,控制单元格是否更新。补充:建议你采用Excel的【共享工作簿】功能(Excel2007为例:【审阅】-【共享工作簿】,如图),这个功能允许多人通过网络编辑文件,且不会造成...

excel中引用另一个工作表的数据的问题
把公式中的$号去掉,然后往下拉 工具-选项-重新计算,在"自动重算"前打勾

相似回答