2017-02-01 7 views
0

Я создаю инструмент в VBscript, который преобразует все документы Word в папку в документы excel. Мне нужно скопировать все и сохранить исходное форматирование. Это выполняется вручную с помощью ctrl-a документа документа и вставки в документ excel. Основная проблема заключается в ActiveDocument (я не уверен, что он активирует мой документ с текстом), и я не уверен, как сделать пасту в документе excel.Преобразование документов Word в Excel с помощью VBscript

Вот мой код. Он создает новые файлы excel с тем же именем, что и словальные документы, но он не копирует содержимое и не вставляет.

set shApp = CreateObject("shell.application") 
currentPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".") 
set shFolder = shApp.NameSpace(currentPath) 
set files = shFolder.Items() 



for each files in files 
    if files.type = "Microsoft Word 97 - 2003 Document" OR files.type = "Microsoft Word Document" then 
     msgbox("Converting: "&files.path) 
     Call DocConvert() 'function call to function that converts .doc to .xls 

end if 
next 


'Opens a word document copies the contents and pastes it into an excel document of the same name 
Function DocConvert() 

On Error Resume Next 

Set objWord = GetObject(, "Word.Application") 
     If Err <> 0 Then 
      Set objWord = CreateObject("Word.Application") 
     End If 

objWord.Visible = True 
objWord.Documents.Open(files.path) 

ActiveDocument.Range(0, 0).Select 
Selection.WholeStory 
Selection.Copy 


Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 
Set objWorkbook = objExcel.Workbooks.Add() 

ExcelSave = replace(files.path,"doc","xls") 

objWorkbook.SaveAs(ExcelSave) 

objWord.Quit 
objExcel.Quit 

End Function 
+3

Файлы Word - это * документы *. Файлы Excel - это * электронные таблицы *. Это так неправильно. –

+1

Хм, зачем вам это в Excel? Возможно, это проблема [XY] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)? Какова цель размещения текста Word в Excel? – BruceWayne

+1

'для каждого файла в файлах' это неправильно ... И почему бы не передать объект' file' в качестве параметра 'DocConvert'? –

ответ

0

Похоже, что вы действительно не понимаете, что вы делаете ...

Selection.Copy 
Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 
Set objWorkbook = objExcel.Workbooks.Add() 
ExcelSave = replace(files.path,"doc","xls") 
objWorkbook.SaveAs(ExcelSave) 

Вы делаете копию выбора, и вы не вставить его в любом месте? Как Excel должен знать, где его поставить? Вам нужно выбрать ячейку и вставить то, что вы только что скопировали. Конечно, вам нужно сделать это, прежде чем вы покинете Excel и перед сохранением.

 Смежные вопросы

  • Нет связанных вопросов^_^