怎么用VB每隔5分钟把一个数据写入excel表、文件,每个月新建一个excel文件,提供源代码
用VB把采集的温度数据自动保存到excel文件中,每5分钟保存一次,每个月一个文件,怎么做?提供源代码,并注明。...
用VB把采集的温度数据自动保存到excel文件中,每5分钟保存一次,每个月一个文件,怎么做?提供源代码,并注明。
展开
展开全部
'打开VB,新建工程,插入以下代码
Dim tNum As Long
Private Sub Form_Load()
tNum = 0
Timer1.Interval = 1000 '设置Timer1的间隔时间(暂时按每五秒保存一次),单位为毫秒,一秒钟等于1000,5分钟等于多少自己算出来后改
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
tNum = tNum + 1 '按上述设置的时间,每秒钟tNum加1
If tNum Mod 5 = 0 Then '如果tNum能被5整除,则说明经过了五秒,则保存一次,注意设置其他的时间的时候,要自己计算,
SaveExcel "需要写入的数据A", "需要写入的数据B" '这个需要写入的数据可以自定义
End If
End Sub
Function SaveExcel(Texta As String, Textb As String) '定义一个函数,用来保存数据到Excel,从A1开始检查,
Dim appExcel As Object
Dim BookExcel
Dim ExcelName As String
Dim i As Long
ExcelName = Year(Date) & Format(Month(Date), "00") & ".xls" '按年+月命名Excel工作簿
Set appExcel = CreateObject("Excel.Application")
appExcel.Visible = 0
If Dir(App.Path & "\" & ExcelName) = "" Then '如果当前目录下未发现当月的工作簿,则新建一个写入数据并保存
Set BookExcel = appExcel.Workbooks.Add
Set ExcelSheet = BookExcel.Sheets("Sheet1") '选定名叫Sheet1的工作表
For i = 1 To 65536 '从第1行开始检查,如果单元格是空的就写入变量Text后退出。从第几行开始可以自已设定
If ExcelSheet.Cells(i, 1) = "" Then
ExcelSheet.Cells(i, 1) = Texta 'Cells为i行,1列,行列自己定义,要多加自己加
ExcelSheet.Cells(i, 2) = Textb
Exit For
End If
Next
BookExcel.SaveAs App.Path & "\" & ExcelName
BookExcel.Close
Else
Set BookExcel = appExcel.Workbooks.open(App.Path & "\" & ExcelName) '如果存在则打开工作簿
Set ExcelSheet = BookExcel.Sheets("Sheet1") '选定名叫Sheet1的工作表
For i = 1 To 65536 '从第1行开始检查,如果单元格是空的就写入变量Text后退出。从第几行开始可以自已设定
If ExcelSheet.Cells(i, 1) = "" Then
ExcelSheet.Cells(i, 1) = Texta 'Cells为i行,1列,行列自己定义,要多加自己加
ExcelSheet.Cells(i, 2) = Textb
Exit For
End If
Next
BookExcel.Save
BookExcel.Close
End If
Set BookExcel = Nothing
Set ExcelSheet = Nothing
appExcel.Quit
End Function
'VB6,WIN7下测试通过。使用的时候有神马问题请留言
Dim tNum As Long
Private Sub Form_Load()
tNum = 0
Timer1.Interval = 1000 '设置Timer1的间隔时间(暂时按每五秒保存一次),单位为毫秒,一秒钟等于1000,5分钟等于多少自己算出来后改
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
tNum = tNum + 1 '按上述设置的时间,每秒钟tNum加1
If tNum Mod 5 = 0 Then '如果tNum能被5整除,则说明经过了五秒,则保存一次,注意设置其他的时间的时候,要自己计算,
SaveExcel "需要写入的数据A", "需要写入的数据B" '这个需要写入的数据可以自定义
End If
End Sub
Function SaveExcel(Texta As String, Textb As String) '定义一个函数,用来保存数据到Excel,从A1开始检查,
Dim appExcel As Object
Dim BookExcel
Dim ExcelName As String
Dim i As Long
ExcelName = Year(Date) & Format(Month(Date), "00") & ".xls" '按年+月命名Excel工作簿
Set appExcel = CreateObject("Excel.Application")
appExcel.Visible = 0
If Dir(App.Path & "\" & ExcelName) = "" Then '如果当前目录下未发现当月的工作簿,则新建一个写入数据并保存
Set BookExcel = appExcel.Workbooks.Add
Set ExcelSheet = BookExcel.Sheets("Sheet1") '选定名叫Sheet1的工作表
For i = 1 To 65536 '从第1行开始检查,如果单元格是空的就写入变量Text后退出。从第几行开始可以自已设定
If ExcelSheet.Cells(i, 1) = "" Then
ExcelSheet.Cells(i, 1) = Texta 'Cells为i行,1列,行列自己定义,要多加自己加
ExcelSheet.Cells(i, 2) = Textb
Exit For
End If
Next
BookExcel.SaveAs App.Path & "\" & ExcelName
BookExcel.Close
Else
Set BookExcel = appExcel.Workbooks.open(App.Path & "\" & ExcelName) '如果存在则打开工作簿
Set ExcelSheet = BookExcel.Sheets("Sheet1") '选定名叫Sheet1的工作表
For i = 1 To 65536 '从第1行开始检查,如果单元格是空的就写入变量Text后退出。从第几行开始可以自已设定
If ExcelSheet.Cells(i, 1) = "" Then
ExcelSheet.Cells(i, 1) = Texta 'Cells为i行,1列,行列自己定义,要多加自己加
ExcelSheet.Cells(i, 2) = Textb
Exit For
End If
Next
BookExcel.Save
BookExcel.Close
End If
Set BookExcel = Nothing
Set ExcelSheet = Nothing
appExcel.Quit
End Function
'VB6,WIN7下测试通过。使用的时候有神马问题请留言
追问
调用SaveExcel函数得“xx=SaveExcel(1,2)” 这样吧?
我试了你的代码,好用。
再改一下,从excel文件的第2行开始存,第一列是日期,第2列是时间,第3列和第4列是数据。
改完了这50分就送你了!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询