Экспорт таблиц в эксель. Прошу помощи
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Экспорт таблиц в эксель. Прошу помощи

Экспорт таблиц в эксель. Прошу помощи

Ответ
Поиск в этой теме
Непрочитано 18.03.2013, 09:14 #1
Экспорт таблиц в эксель. Прошу помощи
thdr
 
Регистрация: 18.03.2013
Сообщений: 3

Помогите пожалуйста разобраться в коде.
Имею Win 7 64, автокад 2013 + vba enabler 64. На 32 битной системе все работает нормально, получаю нужный результат.
На 64 битной системе отладчик стопорится на Set ThdrDLL = ThisDrawing.Application.GetInterfaceObject("alexUt.lexUtil") и соответственно ошибка Выдает ошибку Run-time error - 2147221164 (80040154) Problem in loading application.

Привожу код
Код:
[Выделить все]
Dim strWBName As String, strWSName As String
Dim blnSecTab As Boolean
Dim objExcel As Excel.Application
Dim objExWB As Workbook
Dim exWSheet As Worksheet
Dim exFCell As Range
Dim blnSaveFile As Boolean
Dim WinHwnd As Long

Public Sub sbAllAcTableExport()
  Dim acMS As AcadBlock
  Dim acPS As AcadBlock
  Dim acEnt As AcadEntity
  Dim iCntMS As Integer, iCntPS As Integer, iTabOrd As Integer, iMaxL As Integer
  
  Dim acLayout As AcadLayout
  Dim acLyts As AcadLayouts
  
  Dim ThdrDLL As Object
  Set ThdrDLL = ThisDrawing.Application.GetInterfaceObject("alexUt.lexUtil")
    
  blnSaveFile = True
  blnSecTab = False
  
  Set acMS = ThisDrawing.Blocks.Item("*Model_Space")
  For Each acEnt In acMS
    If acEnt.ObjectName = "AcDbTable" Then
      sbInsAcTableToEx acEnt
      blnSecTab = True
      iCntMS = iCntMS + 1
    End If
  Next
  
  Set acLyts = ThisDrawing.Layouts
  iMaxL = acLyts.Count - 1
  
  For iTabOrd = 1 To iMaxL
    For Each acLayout In acLyts
      If acLayout.TabOrder = iTabOrd Then
        Set acPS = acLayout.Block
        For Each acEnt In acPS
          If acEnt.ObjectName = "AcDbTable" Then
            sbInsAcTableToEx acEnt
            blnSecTab = True
            iCntPS = iCntPS + 1
          End If
        Next
        Debug.Print acLayout.Name
      End If
    Next
  Next iTabOrd
  
  AppActivate "AutoCAD"
  MsgBox "Экспорт таблиц в Excel окончен." & vbCrLf & "Экспортироанно из пространства модели - " & iCntMS & _
    vbCrLf & "Экспортированно из пространства листов - " & iCntPS, vbOKOnly + vbInformation, "Процедура окончена."
  
  ThdrDLL.WindowActivate WinHwnd
  
ExitSub:
  Set acMS = Nothing: Set acPS = Nothing: Set acLayout = Nothing: Set acLyts = Nothing
  Set acEnt = Nothing: Set ThdrDLL = Nothing
  Set objExcel = Nothing: Set objExWB = Nothing: Set exFCell = Nothing: Set exWSheet = Nothing
End Sub

Последний раз редактировалось Кулик Алексей aka kpblc, 18.03.2013 в 09:33.
Просмотров: 4232
 
Непрочитано 18.03.2013, 09:32
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,408


alexUt.lexUtil - это что и откуда? Соответствующее приложение вообще существует? Загружено? Зарегистрировано?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.03.2013, 09:33
#3
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


однозначно надо иметь версию "alexUt.lexUtil.dll" переписанную на 64-бит,
проще сделать свой модуль это не так сложно,или ищи в Google
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 18.03.2013, 09:52
#4
thdr


 
Регистрация: 18.03.2013
Сообщений: 3


Олег не подскажите как? может как-то пересобрать библиотеку под 64.?

Да Алексей, библиотеку я зарегистрировал в системе, в реестре запись появилась, сама библиотека лежит в SysWow64.

Последний раз редактировалось thdr, 18.03.2013 в 10:14.
thdr вне форума  
 
Непрочитано 18.03.2013, 10:26
#5
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от thdr Посмотреть сообщение
Олег не подскажите как? может как-то пересобрать библиотеку под 64.?

Да Алексей, библиотеку я зарегистрировал в системе, в реестре запись появилась, сама библиотека лежит в SysWow64.
Нужен полный доступ к коду и затем в сборке заменить ссылки на библиотеки
из папки где хранятся соответствующие тем что были на 32 битные,
или лучше скопипастить код и создать отдельную сборку
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 19.03.2013, 11:04
#6
thdr


 
Регистрация: 18.03.2013
Сообщений: 3


Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
Нужен полный доступ к коду и затем в сборке заменить ссылки на библиотеки
из папки где хранятся соответствующие тем что были на 32 битные,
или лучше скопипастить код и создать отдельную сборку
Олег, а можно ссылочку, я вчера пол интернета облазил, такое ощущение что 64 битная система не понимает код этот. Ситуация такая в 32 битной системе макросы для автокада работают отлично. А вот на 64 битной такая вот проблема. Пробовал даже использовать hex редактор, нашел там пути в этой dll, которые не соответствовали. Поправил.
thdr вне форума  
 
Непрочитано 19.03.2013, 12:52
#7
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


Цитата:
Сообщение от thdr Посмотреть сообщение
Ситуация такая в 32 битной системе макросы для автокада работают отлично. А вот на 64 битной такая вот проблема.
У меня вообще через раз макросы запускались, потому мигрировал на .net, чего и Вам желаю.
Boxa вне форума  
 
Непрочитано 19.03.2013, 14:13
#8
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


VBA - это вообще не надёжный товарищ, своего рода тёмная лошадка. Сейчас он не стабилен и на краю пропасти, а в версии AutoCAD 2014... В общем посмотрим Но автодеск продолжает настоятельно валить с этого языка.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 19.03.2013, 14:47
#9
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от thdr Посмотреть сообщение
Олег, а можно ссылочку, я вчера пол интернета облазил, такое ощущение что 64 битная система не понимает код этот.
тебе нужен полный доступ к коду чтобы собрать новую сборку для 64-бит,
просто изменить ссылки не поможет, проще создать новый проект и скопипастить в него код,
естественно ссылки должны быть те что нужно,
насчет макросов ищи здесь или тоже самое в Гугле:
http://yandex.ru/yandsearch?text=64-...o+problem&lr=2

Можешь попробвать пример отсюда:
http://forums.autodesk.com/t5/Visual...ht/true#M93666
последний пример

Последний раз редактировалось Олег (jr.), 19.03.2013 в 15:39.
Олег (jr.) вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Экспорт таблиц в эксель. Прошу помощи



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи, сопряжение ригеля с колонной, диафрагмой! Michail Конструкции зданий и сооружений 11 27.07.2007 19:54
Рекламный щит. Прошу помощи Седой Прочее. Архитектура и строительство 4 01.04.2007 11:33
Прошу помощи как начинающий по размерам gariksor AutoCAD 2 19.01.2006 11:44
прошу помощи AUTOCAD Electrical bag AutoCAD 13 24.05.2005 19:08
Lisp и снова прошу помощи ilka_t LISP 10 03.12.2004 12:57