如何在一个已经有的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的时候能从紧接着上面的 数据保存!
请问如何实现!感谢!
...全文
357 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧