如何将读取的数据保存的excel文件不同的工作表中

wanglong3713 2014-04-21 08:34:13
每隔一段时间,获取一组数据,存入到程序目录下的xx.xls文件(如果不存在,则新建)的第一个工作表下,存在第2行里,第1行是已经建好的数据各列的名称;再隔一段时间,另一组数据存入到同一个工作簿第二个工作表下,同样也是在第2行;再隔同样时间,再保存到第一个工作表的第3行下……如此循环,请问该如何实现?
谢谢!
...全文
345 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
一如既往哈 2014-04-22
  • 打赏
  • 举报
回复
参考下面最基本的代码,根据需要自行修改。


Option Explicit
Private Xls As Excel.Application, xBook As Excel.Workbook, xSht As Excel.Worksheet
Private bFile As String
Private Sub Command1_Click()
    ''开始工作.....
    On Error Resume Next
    Set Xls = New Excel.Application
    bFile = "e:\123.xls"
    Set xBook = Xls.Workbooks.Open(bFile)
    If xBook Is Nothing Then
        Set xBook = Xls.Workbooks.Add
        xBook.SaveAs bFile
    End If
    If xBook Is Nothing Then
        MsgBox "存在未知错误!无法正常打开或创建工作簿!"
        Exit Sub
    End If
    ''判断工作表数量
    If xBook.Worksheets.Count < 2 Then
        ''如果工作表数量不够,不管3721添加2个
        xBook.Worksheets.Add
        xBook.Worksheets.Add
    End If
    ''设置2个表头
    xBook.Worksheets(1).Range("a1") = "时间"
    xBook.Worksheets(2).Range("a1") = "时间"
    Set xSht = xBook.Worksheets(1) ''第一次用工作表1
    ''设置定时器
    Timer1.Interval = 5000
    Timer1.Enabled = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
    If Not xBook Is Nothing Then xBook.Close True
    Set xBook = Nothing
    If Not Xls Is Nothing Then Xls.Quit
    Set Xls = Nothing
End Sub
Private Sub Timer1_Timer()
    Dim i As Long
    i = xSht.Range("a1").End(xlDown).Row
    If i = xSht.Rows.Count Then i = 1
    xSht.Range("a" & (i + 1)) = Timer ''暂时用时间值作为数据存储
    ''更改xhst
    Set xSht = xBook.Worksheets(IIf(xSht Is xBook.Worksheets(1), 2, 1))
    xBook.Save
End Sub

of123 2014-04-22
  • 打赏
  • 举报
回复
把 Excel 当作外部数据库打开(创建的情况另议,需要 Dir 函数查是否存在,并调用 Excel 对象建立空文件。),用 SQL 语句插入记录即可。 Dim cn As New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Book1.xls;Extended Properties=""Excel 8.0;""" cn.Execute "Insert Into [Sheet1$](fieldname1, fieldname2) Values(fieldvalue1, fieldvalue2)" cn.Close Set cn = Nothing 如果你能够利用时间等判断出要写入的表名,则直接用 If 判断选择工作表;否则可能需要维护一个记录,例如写入工作表 3 的一些信息。
wanglong3713 2014-04-21
  • 打赏
  • 举报
回复
引用 1 楼 Topc008 的回复:
到底有几个工作表?第一,第二,是不是还有第三,第四,.... excel工作表的数量是有限的......
只有一个工作簿,两个工作表,第一次保存在第一个工作表里,第二次第二个,然后又是第一个,第二个,轮流保存。
一如既往哈 2014-04-21
  • 打赏
  • 举报
回复
到底有几个工作表?第一,第二,是不是还有第三,第四,.... excel工作表的数量是有限的......

7,763

社区成员

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

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