您的位置:首页 > 编程语言 > VB

vbs操作excel

2015-06-22 23:19 239 查看
航天金税系统升级,导出的Excel文件格式与原来有的差异,老的数据导入程序识别不了该文件,对比了新老文件后,发现新文件在专票和普票的“份数”行前增加了一行,同时增加了“单据号”列,通过脚本 把这些删除。

SetNewFormat("C:\Users\gukajie\Desktop\增值税专普发票数据导出20150619.xls")

Function SetNewFormat(filename)
Dim Ex, Wb, Sht
Dim LastRow, r
Dim name3
Set Ex = CreateObject("Excel.Application")
Set Wb = Ex.Workbooks.Open((filename))
Set Sht = Wb.Sheets("Sheet1")
'删除第2到第5行
'Sht.Rows("2:5").Delete
LastRow = Sht.UsedRange.Rows.Count
'MsgBox LastRow
For r = 2 To LastRow Step 1
name =Sht.range("A"&r).Value
name2 =Sht.range("J"&(r-1)).Value
If (left(name,2)="份数" and name2="") Then
Sht.Rows(r-1).Delete
'MsgBox r
End If

If (r=6) Then
name3 =Sht.range("H"&(6)).Value
End If

Next

If (name3="单据号") Then
Sht.Columns(8).Delete
End If

Ex.ActiveWorkbook.Save
'MsgBox "操作完成"
Ex.Quit
End Function


但是把脚本加入windows计划任务后发现无法执行,第次运行进程里面会多出一个wscript.exe和Excel32.exe进程。实际上脚本 在执行

Set Ex = CreateObject("Excel.Application")
后就没有再执行。

google了一下,发现

CreateObject("Excel.Application")
需要有交互要求,有交互要求的脚本不能在计划任务中直接运行。
只有在用户登录的情况下才能执行,所以,计划任务属性中需要勾选:





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: