2016-01-12 6 views
0

Я использовал некоторый код в VBScript, чтобы открыть файл .xlsm и сохранить этот файл. Теперь я хочу сделать то же самое, что и файл .xltm. Я попытался открыть файл xltm со скриптом, он отлично работает. Сохраняя этот файл, он ссылается на местоположение по умолчанию и расширение по умолчанию. Мне нужно сохранить вновь открытый файл с расширением «.xlsm» в указанном месте. Я не знаю, как это сделать. Пожалуйста, помогите мне решить эту проблему.открыть и сохранить файл xltm

Set objExcel = CreateObject("Excel.Application") 
Set WBTestFile = objExcel.Workbooks.Open(WScript.Arguments(0))'SourceFile 
WBTestFile.save 
WBTestFile.close 
objExcel.Workbooks.Open(WScript.Arguments(0)) 

Здесь я передаю имя файла (с указанием пути) в качестве аргумента. Мне нужно открыть недавно сохраненный файл «.xlsm» в последнем утверждении. Аргумент: «c: \ test \ book1.xltm», мой новый файл нужно сохранить в месте «C: \ test \» с расширением «xlsm».

ответ

1

Метод Save сохраняет файл как есть. Для того, чтобы сохранить его в другом формате, вам нужно использовать метод SaveAs с правильным file format аргументом (в данном случае с поддержкой макросов шаблон Open XML):

filename = WScript.Arguments(0) 
templatename = Replace(filename, ".xlsm", ".xltm") 

Set xl = CreateObject("Excel.Application") 
Set wb = xl.Workbooks.Open(filename) 
wb.SaveAs templatename, 53 'save as template 
wb.Close 
xl.Quit 

Чтобы создать новую книгу из существующего шаблона вам нужно для использования метода Add с указанием пути к шаблону в качестве аргумента, а затем сохраните файл в виде рабочей книги с открытым кодом с поддержкой макросов:

template = WScript.Arguments(0) 
filename = Replace(template, ".xltm", ".xlsm") 

Set xl = CreateObject("Excel.Application") 
Set wb = xl.Workbooks.Add(template) 
wb.SaveAs filename, 52 'save as workbook 
wb.Close 
xl.Quit 
Смежные вопросы