Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2016, 08:54   #1
Zurs
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 28
По умолчанию Ошибка в макросе Word?

Компилятор возвращает ошибку:User-defined type not defined на компонент Excel.Application. Макрос пишется в Word. Подскажите, как можно исправить? Сам макрос:
Код:
Sub impot()
    Dim xl As Excel.Application, wb As Excel.Workbook, ws As Excel.Worksheet
    Dim xlOpen As Boolean, wshell
    Set xl = GetObject(, "Excel.application")
    If Err.Number <> 0 Then
        Set xl = CreateObject("excel.application")
    Else
        xlOpen = True
    End If
    On Error Resume Next
    Set wshell = CreateObject("WScript.Shell")
    Set wb = xl.Workbooks.Open(wshell.CurrentDirectory & "\Таблица.xlsx")
    If wb Is Nothing Then
        MsgBox "Unable to open file!"
    
    On Error GoTo 0
    GoTo cleanUp
    End If
    On Error GoTo 0
    Set ws = wb.Sheets("table1")
    With ws
        .Range("A10:M20").Copy
        Selection.Paste
    End With
cleanUp:
    If xlOpen = False Then xl.Quit
    Set xl = Nothing
    Set wb = Nothing

End Sub
Zurs вне форума Ответить с цитированием
Старый 01.04.2016, 10:05   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Макрос от MS Excel не будет работать в MS Word - это совершенно разные платформы, у них разная объектная модель.
Зачем Вам в MS Word выполнять макрос, который должен выполняться в MS Excel?
Вы его в MS Excel и выполняйте!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.04.2016, 10:55   #3
Zurs
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 28
По умолчанию

Эм, ну мне нужно записать в Word-файл, таблицу из Excel. А можно этот код переработать, чтоб он в Word работал?
Zurs вне форума Ответить с цитированием
Старый 01.04.2016, 11:08   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

попробуйте

Код:
Sub impot()
'''
    Dim xl As object, wb As object, ws As object
''' 
   Dim xlOpen As Boolean, wshell
    Set xl = GetObject(, "Excel.application")
    If Err.Number <> 0 Then
        Set xl = CreateObject("excel.application")
    Else
        xlOpen = True
    End If
    On Error Resume Next
    Set wshell = CreateObject("WScript.Shell")
    Set wb = xl.Workbooks.Open(wshell.CurrentDirectory & "\Таблица.xlsx")
    If wb Is Nothing Then
        MsgBox "Unable to open file!"
    
    On Error GoTo 0
    GoTo cleanUp
    End If
    On Error GoTo 0
    Set ws = wb.Sheets("table1")
    With ws
        .Range("A10:M20").Copy
        Selection.Paste
    End With
cleanUp:
    If xlOpen = False Then xl.Quit
    Set xl = Nothing
    Set wb = Nothing

End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 01.04.2016, 12:11   #5
Zurs
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 28
По умолчанию

Все отлично сработало, только Excel файл становится недоступен. Это можно исправить?
Zurs вне форума Ответить с цитированием
Старый 01.04.2016, 15:27   #6
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,079
По умолчанию

это строка выхода из ексель
Код:
 If xlOpen = False Then xl.Quit
закомменте ее
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в макросе eemil Microsoft Office Excel 14 17.01.2016 19:05
Ошибка в макросе Оксана33 Microsoft Office Excel 9 20.12.2015 16:52
Ошибка в макросе Арианна Microsoft Office Excel 15 14.10.2013 15:06
Ошибка в макросе runik Microsoft Office Excel 5 19.11.2012 17:28
Почему, ошибка в макросе valerij Microsoft Office Excel 8 27.02.2010 01:48