注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

Excel导出TXT,直接用SaveAs方法比较快!  

2016-11-06 16:01:56|  分类: 一些练习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
之前用的xls2txt.vbs今天用它转换一百多个xls文件,比较慢!
原因我认为是脚本进程要把数据从Excel进程读过来,这个过程就比较费时!
如果直接用Excel进程转换TXT这样就不用读数据到脚本进程了。
录制了个宏转换xls到txt
Sub Macro1()
    ActiveWorkbook.SaveAs Filename:="C:\test.txt", FileFormat:=xlText, CreateBackup:=False
End Sub
但是这样在vbs脚本里不能用。那就把xlText原值写到脚本里。
之后运行总是弹对话框阻止脚本执行!
找了个参考:
Sub 另存()
Workbooks.Open Filename:="E:\001.xls"
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
ActiveWindow.Close
ActiveWorkbook.SaveAs Filename:="E:\001.xls"
End Sub
 
只要增加
Application.DisplayAlerts = False
这句就可以了!

把以前的改了一下xls_exp_txt.vbs

' Excel导出TXT
Sub XLS2TXT(fromXLS, toTXT)
    Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(fromXLS) Then
' 来源xls文件不存在!
Exit Sub
End If
If fso.FileExists(toTXT) Then
' 目标txt文件已存在!
Exit Sub
End If

    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open(fromXLS)
    'xlApp.Visible = True
xlApp.DisplayAlerts = False
    xlBook.SaveAs toTXT, &HFFFFEFC2

    xlApp.Quit
    Set xlApp = Nothing
    Set fso = Nothing
End Sub

Set objArgs = WScript.Arguments
If objArgs.count = 2 Then
XLS2TXT objArgs(0), objArgs(1)
Else
WScript.Echo "Excel导出TXT用法举例,文件名要带路径: xls_exp_txt.vbs c:\aaa.xls d:\aaa.txt"
End If
  评论这张
 
阅读(3)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017