如何在一个已经有的Excel表中增加新的数据

assa 2003-05-19 01:50:09
我的程序是把一个TXT文件转化成EXCEL文件。转化完成后,下以个txt文件的数据我 也想保存在这个 Excel中,请问如何实现!感谢!
主要代码:
Set ex = CreateObject("Excel.Application")
Set exwbook = Nothing
Set exsheet = Nothing
Set exwbook = ex.Workbooks().Add
Set exsheet = exwbook.Worksheets("sheet1")

ex.Range("a1").Value = "URL"
ex.Range("b1").Value = "Categories"
'保存输入到abc.xls
exwbook.SaveAs "c\abc.xls"
'退出excel
ex.Quit

用exwbook.SaveAs 文件名
这个语句只会覆盖以前的 数据。我想在下一次调用Excel的时候能从紧接着上面的 数据保存!
请问如何实现!感谢!
...全文
149 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
assa 2003-06-03
up
回复
atree_zhang 2003-05-30
up
回复
assa 2003-05-30
代码不错,可是还是解决不了下次保存的问题,如果是下次的saveAs ,数据是不是会被覆盖,你的i在每次点击中都是为2呀,这样生成一个EXCEL还可以,如果有了一个EXCEL文件我想继续往下保存数据,我觉得首先要读取excel ,并得到现在数据的行数和烈数,并把得到的值赋给i,下次循环就没问题了!
可是iCount = x1sheet.Rows.Count '得到表格的行数
好像不好用!!
回复
cy_nwau 2003-05-27
还是我来吧!思路是这样的:
1、将所有的TXT文件放入一个文件夹中
2、利用FSO获得文件夹中的所有文件对象
3、依次打开各TXT文件
4、将数据依次读出,写入EXCEL文件的单元格中
5、保存该EXCEL文件
代码如下:
Private Sub Command1_Click()
Dim i%, s$, xh$, cj$
Dim p As Object, fs As Object, fld As Object
Dim x As Object, xbook As Object, xsheet As Object
Set fs = CreateObject("scripting.filesystemobject") '创建文件系统对象fs
Set fld = fs.getfolder("c:\test") '创建文件系统对象的文件夹对象fld
Set x = CreateObject("excel.application") '创建EXCEL应用程序对象,启动EXCEL应用程序
Set xbook = x.workbooks.Add '新建一个工作簿,并将其赋给xbook
Set xsheet = xbook.worksheets(1) '将xbook工作薄中的第一个表赋给xsheet
x.Visible = True '让EXCEL可视
'xsheet.Columns("A:A").NumberFormatLocal = "@" '将第A列文件格式设置成文本型
xsheet.Cells(1, 1) = "学号" '为第一行第一列填入内容
xsheet.Cells(1, 2) = "成绩"
i = 2
For Each p In fld.Files '遍历fld对象的所有files,并赋给变量p
Open "c:\test\" & p.Name For Input As #1
Do Until EOF(1)
Line Input #1, s,xh,cj
Loop
Close #1
xsheet.Cells(i, 1) = xh
xsheet.Cells(i, 2) = cj
SendKeys "+{down}"
i = i + 1
Next
x.SaveAs "c:\学生成绩表.xls"
End Sub

回复
assa 2003-05-27
up
回复
assa 2003-05-25
free_eyes兄,你的代码老是得不到行数,运行“错误6 ,溢出”总是在
iCount = x1sheet.Rows.Count这一行

Set waijiaji = CreateObject("Excel.Application")
Set x1book = waijiaji.Workbooks.Open("c:\test.xls")
Set x1sheet = x1book.Worksheets(1)
iCount = x1sheet.Rows.Count '得到表格的行数
Debug.Print Str(iCount)
Set x1book = Nothing
waijiaji.Application.Quit
End Sub

请指教!!多谢
回复
自由之眼 2003-05-24
可以这样首先得到一个属性
x1sheet.Rows.Count '这个属性时的到表格中的行数。
例如:
Dim str1 As String
Dim waijiaji As Excel.Application
Dim x1book As Excel.Workbook
Dim x1sheet As Excel.Worksheet
Dim iCount As Integer
Set waijiaji = CreateObject("Excel.Application")
Set x1book = waijiaji.Workbooks.Open(App.Path + "\excel\耗料汇总表.xls")
Set x1sheet = x1book.Worksheets(1)
iCount = x1sheet.Rows.Count '得到表格的行数
For i = 1 To MGrid1.Rows - 1 '将MsGrid控件的数据添加上去
For j = 1 To MGrid1.Cols - 1
MGrid1.Row = i
MGrid1.Col = j
x1sheet.Cells(iCount+ i, j) = MGrid1.Text '数据累加上去
Next j
Next i
x1sheet.SaveAs "c\耗料汇总表.xls"
Set x1book = Nothing
waijiaji.Application.Quit
回复
cy_nwau 2003-05-24
mark
回复
jackjones 2003-05-21
up
回复
assa 2003-05-19
不行不行,没有As就报错!!我只会按照a1 a2……这样存,假如已经有了一个excel文件,我也不知道已经是a几了,如何在它下面接着存呀……给点建设性意见……
回复
flyeverywhere 2003-05-19
后面用exwbook.Save 就可以了啊
为什么要用exwbook.SaveAs 呢?除非你要保存在不同的文件中!
回复
Vii 2003-05-19
up
回复
Vii 2003-05-19
up
回复
assa 2003-05-19
up
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7489

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-05-19 01:50
社区公告
暂无公告