使用vbs将.xlsx保存为制表符分隔的.txt文件

时间:2016-08-04 17:11:50

标签: excel vbscript save-as tab-delimited

我只是打开一个文件,删除两行并更改单元格a1的内容,然后尝试将excel文件保存为制表符分隔的文本文件。我已经尝试了很多方法,但是只要有冒号(:),所有内容都会给我一个汇编读取“预期语句”错误。

 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, _

过去三天我一直在撞墙,试图让它发挥作用:/

1 个答案:

答案 0 :(得分:0)

您有几个错误。

  1. 如评论中所述,您保存工作簿,而不是 Excel.Application对象。对.Sheets的调用需要引用 工作簿也是如此。 .Open方法返回对该引用的引用 工作簿 - 抓住以下使用。
  2. VBScript对此一无所知 内置Excel常量。您需要提供实际值 它们代表了枚举。例如,xlText为-4158。
  3. VBScript不支持命名参数语法。您需要明确传递它们。
  4. ActiveSheet.Name将返回snowfall.xlsx。您需要使用.txt扩展名保存文件。
  5. 最终结果应该更像这样:

     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