Использование vbs для сохранения .xlsx в виде файла .txt с разделителями табуляции

Я просто открываю файл, удаляю две строки и меняю содержимое ячейки 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, _

Последние три дня я бился головой о стену, пытаясь заставить это работать :/


person Sonican    schedule 04.08.2016    source источник
comment
у вас есть _ в конце этой строки, поэтому есть дополнительные параметры, которые вы не показали......или это может быть причиной проблемы....   -  person Sorceri    schedule 04.08.2016
comment
ExcelObject.SaveAs неправильно, вы сохраняете книги, а не само приложение. Также покажите полный код для SaveAs.... проблема может быть там.   -  person cyboashu    schedule 04.08.2016
comment
короткий ответ - заменить ExcelObject.SaveAs на ExcelObject.Sheets(1).SaveAs   -  person Slai    schedule 04.08.2016


Ответы (1)


У вас несколько ошибок.

  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
person Comintern    schedule 04.08.2016