2016-08-04 172 views
0

我只是打开一个文件,删除两行并更改单元格a1的内容,然后尝试将excel文件保存为制表符分隔的文本文件。我已经尝试了很多方法,但是无论冒号(:)如何,一切都会给我一个阅读“预期声明”错误的汇编。使用vbs保存.xlsx作为制表符分隔的.txt文件

Set ExcelObject = CreateObject("Excel.Application") 
ExcelObject.visible = True 
ExcelObject.Workbooks.Open"c:\snowfall.xlsx",Default, False 
ExcelObject.sheets(1).Rows("1:2").Delete 
ExcelObject.Sheets(1).Cells(1,1).value = "testing write function" 
ExcelObject.SaveAs Filename:=Activesheet.name, FileFormat:=xlText, _ 

有错误的唯一路线是最后一个:

ExcelObject.SaveAs Filename:=Activesheet.name, FileFormat:=xlText, _ 

我一直在敲打我的头靠在墙上的最后三天试图得到这个工作:/

+0

你有一个_在该行的末尾,以便有更多的选项可设置您还没有表现出......或这可能是导致问题的原因.... – Sorceri

+1

'ExcelObject.SaveAs'错误,您保存工作簿而不是应用程序本身。同时显示SaveAs的完整代码....问题可能在那里。 – cyboashu

+0

简短的回答是用'ExcelObject.Sheets(1).SaveAs'替换'ExcelObject.SaveAs' – Slai

回答

0

你有几个错误。

  1. 正如评论中所述,您保存工作簿,而不是 Excel.Application对象。对.Sheets的调用也需要参考 工作簿。 .Open方法返回对 工作簿的引用 - 抓住以下用法。
  2. VBScript对内置于Excel常量中的 一无所知。您需要提供它们在枚举中所代表的实际值 。例如,xlText是-4158。
  3. VBScript不支持命名参数语法。你需要明确地通过它们。
  4. ActiveSheet.Name要返回snowfall.xlsx。您需要使用.txt扩展名保存该文件。

最终的结果应该看起来更像是这样的:

Set ExcelObject = CreateObject("Excel.Application") 
ExcelObject.Visible = True 
Set wb = ExcelObject.Workbooks.Open("c:\snowfall.xlsx") 
wb.Sheets(1).Rows("1:2").Delete 
wb.Sheets(1).Cells(1, 1).Value = "testing write function" 
wb.SaveAs "c:\snowfall.txt", -4158 
相关问题