Страницы: 1
RSS
Как использовать код Word VBA в Excel VBA
 
Здравствуйте.
Хорошие ребята (пользователь: aap77) с сайта http://wordexpert.ru/ дали мне код, который копирует строки текущего файла .docx в массив.
Всё бы хорошо, но мне надо использовать этот код в файле 1.xlsm.
Я импортировал библиотеку Microsoft Word 12.0 Object Library в файл .xlsm и теперь хочу производить операции над 1.docx
с помощью этого кода:

Код
Public lst() As Variant
Public Function CopyToArray() As Variant
Dim AWind As Window
Dim APane As Pane
Dim Pages As Pages
Dim Page As Page
Dim Rect As Rectangle
Dim LineCount As Long
'Dim lst() As Variant
Dim Line As Line

 Set AWind = Application.ActiveWindow
 Set APane = AWind.ActivePane
 Set Pages = APane.Pages
'---------------------------------------------------------------------
 For Each Page In Pages
 If Page.Rectangles.Count = 1 Then
 Set Rect = Page.Rectangles(1)
 Else
 Set Rect = Page.Rectangles(2)
 End If
 LineCount = LineCount + Rect.Lines.Count
 Next Page
 LineCount = LineCount - 1
'---------------------------------------------------------------------
 ReDim Preserve lst(0 To LineCount)
 
'---------------------------------------------------------------------
 i = -1
 For Each Page In Pages
 If Page.Rectangles.Count = 1 Then
 Set Rect = Page.Rectangles(1)
 Else
 Set Rect = Page.Rectangles(2)
 End If
 For Each Line In Rect.Lines
 i = i + 1
 lst(i) = Line.Range.Text
 Next Line
 Next Page
'---------------------------------------------------------------------

 'CopyToArray = lst

End Function

Public Sub Macros1()
CopyToArray 'копировать все строки в массив lst, внимание индексация начинается с 0
MsgBox (lst(2)) 'вывести на экран 3-ю строку
End Sub
Мои эксперименты с адаптацией кода под 1.xlsm не увенчались успехом!!! :(
Как грамотно адаптировать этот код, чтобы он работал в 1.xlsm файле?
Зараннее спасибо!
 
Не вижу ни строчки, обозначающей обращение именно к Word-у. И VBA не видит, поэтому пытается обратиться к Excel. Почитайте статью для начала: Как из Excel обратиться к другому приложению
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Не The_Prist, Вы меня неправильно поняли я читал Вашу статью недавно, и с её помощью научился работать с файлами .docx из Excel, я пробовал использовать Ваш код:


Код
Dim objWrdApp As Word.Application
Dim objWrdDoc As Object
Set objWrdApp = CreateObject("Word.Application" ;) 
'objWrdApp.Visible = True
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\" & "1.docx") 

'---------------------------------------
'здесь должен быть код word vba
'--------------------------------------
objWrdDoc.Close True
objWrdApp.Quit
Set objWrdDoc = Nothing: Set objWrdApp = Nothing


Но я же говорю:
Цитата
Мои эксперименты с адаптацией кода под 1.xlsm не увенчались успехом!!!
Изменено: usersuperpupsik - 10.12.2013 15:49:16
Страницы: 1
Читают тему
Наверх