再次谢谢您的帮助,代码运行没有报错,但没有生成二进制文件,手动建立文件后也不能写入数据,请您抽时间再给看看。
Sub exceldata2fmldata()
'将EXCEL工作表数据写入FMLDATA文件
Dim sht, fmldataPath, fileName
Dim i, FileNumber
Dim dzhrq, value 'DZH时间,指标值(VBA的Long,Single为32位)
Dim dt,fso
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = true '不显示对话框False
Set xlBook = xlApp.Workbooks.Open("E:\CPX-ST\fmldata\电子调试.xls")
Set sht = xlBook.Worksheets("Sheet1") '假设要写入的数据在sheet1
fmldataPath = "E:\CPX-ST\fmldata\" 'FMLDATA所在路径
fileName = "581.12345.day" '文件名
set fso=wscript.createobject("Scripting.FileSystemObject")
if fso.fileexists(filename) then kill filename
fso.CreateTextFile fileName
fso.type=1 '数据流类型设为字节'
fso.open
fso.loadfromfile filename '打开文件'
fso.position=0 '设置文件指针初始位置'
i = 2 '设数据从第二行开始;第1列为日期,第2列为指标值
dt = sht.Cells(i, 1) '取出日期
Do While IsDate(dt) And dt <> TimeSerial(0, 0, 0)
dzhrq = DateDiff("s", DateSerial(1970, 1, 1), dt) '转为DZH日期:与1970.1.1间隔秒数
fso.write dzhrq '写入数据'
value = sht.Cells(i, 2) '取出指标值
fso.write value
i = i + 1
dt = sht.Cells(i, 1) '取出日期
Loop
fso.savetofile filename,2 '覆盖保存'
fso.close '关闭文件
xlBook.Close (True) '关闭工作簿 这里的True表示退出时保存修改
xlApp.quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
End Sub
vba与vbs
答案:1 悬赏:0 手机版
解决时间 2021-02-09 08:10
- 提问者网友:龅牙恐龙妹
- 2021-02-08 17:02
最佳答案
- 五星知识达人网友:鱼忧
- 2021-02-08 18:07
修改如下:
Sub exceldata2fmldata()
'将EXCEL工作表数据写入FMLDATA文件
Dim sht, fmldataPath, fileName
Dim i, FileNumber
Dim dzhrq, value 'DZH时间,指标值(VBA的Long,Single为32位)
Dim dt,fso
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = true '不显示对话框False
Set xlBook = xlApp.Workbooks.Open("E:\CPX-ST\fmldata\电子调试.xls")
Set sht = xlBook.Worksheets("Sheet1") '假设要写入的数据在sheet1
fmldataPath = "E:\CPX-ST\fmldata\" 'FMLDATA所在路径
fileName = "581.12345.day" '文件名
set fso=wscript.createobject("Scripting.FileSystemObject")
if fso.fileexists(filename) then kill filename
Set fso = fso.CreateTextFile(fileName, True)
i = 2 '设数据从第二行开始;第1列为日期,第2列为指标值
dt = sht.Cells(i, 1) '取出日期
Do While IsDate(dt) And dt <> TimeSerial(0, 0, 0)
dzhrq = DateDiff("s", DateSerial(1970, 1, 1), dt) '转为DZH日期:与1970.1.1间隔秒数
fso.write dzhrq '写入数据'
value = sht.Cells(i, 2) '取出指标值
fso.write value
i = i + 1
dt = sht.Cells(i, 1) '取出日期
Loop
fso.close '关闭文件
xlBook.Close (True) '关闭工作簿 这里的True表示退出时保存修改
xlApp.quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
End Sub
Sub exceldata2fmldata()
'将EXCEL工作表数据写入FMLDATA文件
Dim sht, fmldataPath, fileName
Dim i, FileNumber
Dim dzhrq, value 'DZH时间,指标值(VBA的Long,Single为32位)
Dim dt,fso
Dim xlApp
Dim xlBook
Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = true '不显示对话框False
Set xlBook = xlApp.Workbooks.Open("E:\CPX-ST\fmldata\电子调试.xls")
Set sht = xlBook.Worksheets("Sheet1") '假设要写入的数据在sheet1
fmldataPath = "E:\CPX-ST\fmldata\" 'FMLDATA所在路径
fileName = "581.12345.day" '文件名
set fso=wscript.createobject("Scripting.FileSystemObject")
if fso.fileexists(filename) then kill filename
Set fso = fso.CreateTextFile(fileName, True)
i = 2 '设数据从第二行开始;第1列为日期,第2列为指标值
dt = sht.Cells(i, 1) '取出日期
Do While IsDate(dt) And dt <> TimeSerial(0, 0, 0)
dzhrq = DateDiff("s", DateSerial(1970, 1, 1), dt) '转为DZH日期:与1970.1.1间隔秒数
fso.write dzhrq '写入数据'
value = sht.Cells(i, 2) '取出指标值
fso.write value
i = i + 1
dt = sht.Cells(i, 1) '取出日期
Loop
fso.close '关闭文件
xlBook.Close (True) '关闭工作簿 这里的True表示退出时保存修改
xlApp.quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
End Sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯