Страницы: 1
RSS
Макросом Excel создать таблицу во вновь созданном документе Word
 
Добрый день!  
Помогите, пожалуйста, со вчерашнего дня бьюсь с этой штукой.  
В модуле книги Excel есть следующий код:  
 
Sub Create_Word_Doc()  
Dim wbApp As Object, wDoc As Object, sStr As String  
Set wbApp = CreateObject("Word.Application"): wbApp.Visible = True  
Set wDoc = wbApp.Documents.Add  
'создаем таблицу - если вместо wDoc (ниже) ставим ActiveDocument тоже ругается  
   wDoc.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:= _  
       4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _  
       wdAutoFitFixed  
   With Selection.Tables(1)  
       If .Style <> "Сетка таблицы" Then  
           .Style = "Сетка таблицы"  
       End If  
       .ApplyStyleHeadingRows = True  
       .ApplyStyleLastRow = True  
       .ApplyStyleFirstColumn = True  
       .ApplyStyleLastColumn = True  
   End With  
 
nomerdoc = nomerdoc + 1  
wDoc.SaveAs Filename:=ThisWorkbook.Path & "\запрос" & nomerdoc & ".doc"  
wDoc.Close: wbApp.Quit  
Set wDoc = Nothing: Set wbApp = Nothing  
End Sub  
 
Ругается на создание таблицы.
Audiatur et altera pars
 
VBA Excel сам по себе не знает констант wdWord9TableBehavior, wdAutoFitFixed и т.п.  
Надо либо подключить библиотеку Microsoft Word XX Object Library (XX - версия Ворда), либо выяснить значение констант в VBA Word и вставить числа, например  
1 вместо wdWord9TableBehavior  
0 вместо wdAutoFitFixed
 
Еще,  
wDoc.Tables.Add Range:=Selection.Range  
должно быть  
wDoc.Tables.Add Range:=wDoc.Selection.Range
 
Вставил числа, все равно ругается: wrong number of arguments or invalid property assingment  
 
А библиотеку надо подключать на каждом компьютере куда попадает документ? или можно подключить кодом? Как это делается, подскажите пожалуйста?
Audiatur et altera pars
 
{quote}{login=Казанский}{date=02.12.2010 03:58}{thema=}{post}Еще,  
wDoc.Tables.Add Range:=Selection.Range  
должно быть  
wDoc.Tables.Add Range:=wDoc.Selection.Range{/post}{/quote}  
 
 
Object doesn't support this property or method  
wDoc.Tables.Add Range:=wDoc.Selection.Range, NumRows:=4, NumColumns:= _  
       4, DefaultTableBehavior:=1, AutoFitBehavior:= _  
       0
Audiatur et altera pars
 
wDoc.Tables.Add Range:=wDoc.Range, NumRows:=4, NumColumns:=4, DefaultTableBehavior:=1, AutoFitBehavior:=0
 
Вот так проскочило (заработало). Спасибо Вам - благодаря Вашим советам мини-задача решена.  
 
   wDoc.Tables.Add Range:=wbApp.Selection.Range, NumRows:=4, NumColumns:= _  
       4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _  
       wdAutoFitFixed
Audiatur et altera pars
Страницы: 1
Читают тему
Наверх