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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как извлечь данные из файла Excel

Как извлечь данные из файла Excel

Ответ
Поиск в этой теме
Непрочитано 03.04.2014, 16:07 #1
Как извлечь данные из файла Excel
LexaI
 
Регистрация: 10.09.2013
Сообщений: 14

Как открыть файл Excel и извлечь из него данные из с помощью VBA?
Просмотров: 6036
 
Непрочитано 03.04.2014, 16:38
#2
Кулик Алексей aka kpblc
Moderator

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


LexaI, открываешь двойным кликом, а потом запускаешь макрос
Каков вопрос - таков ответ
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 03.04.2014, 18:34
#3
LexaI


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


Есть файл Excel, в котором хранятся данные. Необходимо извлечь данные из файла и применить их в файле AutoCAD.
Сделал "раннее связывание" (Tools->Referenses), затем пытаюсь использовать Excel:

Sub Exc()
Dim Excel As Excel.Application
Set Excel = Excel.Application.Workbooks
Dim mas As String
mas = Excel.Sheets("Лист1").Cells(7, 3)
MsgBox mas

End Sub

Но что то не работает.
LexaI вне форума  
 
Непрочитано 03.04.2014, 19:09
#4
trir


 
Регистрация: 18.12.2010
Сообщений: 5,057


соседняя тема
trir вне форума  
 
Непрочитано 03.04.2014, 22:24
#5
art_rrc


 
Регистрация: 28.01.2013
Минск
Сообщений: 379


Offtop: LexaI, открываешь двойным кликом, а потом запускаешь макрос
Offtop: Если бы dwg.ru был соцсетью, я бы поставил лайк..)
art_rrc вне форума  
 
Непрочитано 03.04.2014, 22:32
#6
Дмитрий Юпатов


 
Регистрация: 05.03.2009
Украина, Запорожье
Сообщений: 606


mas = Excel.Sheets("Лист1").Cells(7, 3).Value
Кажется, так...
Дмитрий Юпатов вне форума  
 
Непрочитано 04.04.2014, 08:34
#7
RomaV


 
Регистрация: 21.03.2007
Санкт-Петербург
Сообщений: 2,662


Цитата:
Сообщение от art_rrc Посмотреть сообщение
Offtop: Если бы dwg.ru был соцсетью, я бы поставил лайк..)
...что такое лайк?
RomaV вне форума  
 
Автор темы   Непрочитано 05.04.2014, 07:57
#8
LexaI


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


И это тоже не работает.

Sub hhh()
Dim WDoc As Object
Dim mas As String
Set WDoc = GetObject("C:\Users\Алексей\Desktop\макрос.xlsm", "Excel.Application")
mas = Workbooks("макрос.xlsm").Worksheets(Лист1).Cells(7, 3).Value
MsgBox mas

End Sub

Что не так делаю???
LexaI вне форума  
 
Непрочитано 05.04.2014, 09:38
#9
trir


 
Регистрация: 18.12.2010
Сообщений: 5,057


mas = WDoc.Workbooks("макрос.xlsm").Worksheets(Лист1).Cells(7, 3).Value
???
trir вне форума  
 
Непрочитано 05.04.2014, 16:08
#10
art_rrc


 
Регистрация: 28.01.2013
Минск
Сообщений: 379


Лень рыть интернет в поисках первоисточника, так что лови распечатку.. В ней найдешь, то что тебе надо.
ps информация с форума caduser.ru
art_rrc вне форума  
 
Непрочитано 07.04.2014, 09:15
#11
Дмитрий Юпатов


 
Регистрация: 05.03.2009
Украина, Запорожье
Сообщений: 606


Цитата:
Сообщение от LexaI Посмотреть сообщение
И это тоже не работает.
что именно не работает? Что VBA выдает?
Дмитрий Юпатов вне форума  
 
Автор темы   Непрочитано 11.04.2014, 17:50
#12
LexaI


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


Ошибка 432.
File name or class name not found during Automation operation.
LexaI вне форума  
 
Непрочитано 11.04.2014, 19:22
#13
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


А эксель запущен-то?
gomer вне форума  
 
Автор темы   Непрочитано 12.04.2014, 08:05
#14
LexaI


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


Excel запущен.
LexaI вне форума  
 
Непрочитано 12.04.2014, 20:14
#15
Олег (jr.)

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


Цитата:
Сообщение от LexaI Посмотреть сообщение
Что не так делаю???
Попробуй мой старый код, не проверял на поздних версиях,
так что не уверен ( сейчас VBA не установлен)
Код:
[Выделить все]
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
' require references to:

' AutoCAD 20XX Type Library

' AutoCAD Focus Control for VBA Type Library (omit this if you do not show the result on the screen)

' in VBA editor -> Tools -> Options -> General -> Error Trapping box -> check "Break on Unhandled Errors"

          Public Sub CopyXLCellToAcad()
          Dim xlsheet As Worksheet
          Dim xlRange As Range
          
          Set xlsheet = ThisWorkbook.Sheets("Лист1")
          ' define Excel cell by row / column
          Set xlRange = xlsheet.Cells(7, 3)
          xlRange.Select
          ' Also, you can use instead the previous selected Excel range this way:
          'Set xlRange = Selection
          Dim txt As Variant
          txt = xlRange.Value

                    Dim ACAD As AutoCAD.AcadApplication
                    Dim appNum As String
                    On Error GoTo ErrorHandler
                    '' Put exact number of acad release here:
                    appNum = "17"
                    
                    On Error Resume Next
                    Set ACAD = GetObject(, "Autocad.Application." & appNum)
                    If Err.Number = 429 Then
                    Err.Clear
                    
                    On Error GoTo 0
                    Set ACAD = CreateObject("Autocad.Application." & appNum)
                    If Err Then
                    Exit Sub
                    End If
                    End If


          Dim oText As acadText
          Dim pt As Variant
          Dim txtHeight As Double
          txtHeight = 250
          Dim aDoc As AcadDocument
          Set aDoc = ACAD.ActiveDocument
          Dim oUtil As IAcadUtility2
          Dim aSpace As AcadModelSpace
          Set aSpace = aDoc.ModelSpace
          ACAD.WindowState = acMax
          AppActivate AutoCAD.Application.Caption

                    Set oUtil = aDoc.Utility
                    aDoc.SetVariable "osmode", 0
                    ' post dummy command to wake up the AutoCad
                    aDoc.SendCommand ("_zoom _A" & vbCr)
                    pt = oUtil.GetPoint(, "Pick a Text point: ")
                    Dim txtPoint(2) As Double
                    txtPoint(0) = pt(0): txtPoint(1) = pt(1): txtPoint(2) = 0#

          Set oText = aSpace.AddText(CStr(txt), txtPoint, txtHeight)
          oText.Alignment = acAlignmentCenter
          oText.TextAlignmentPoint = txtPoint
          oText.Color = acRed
          oText.Update
          Dim minPt As Variant
          Dim maxPt As Variant

             oText.GetBoundingBox minPt, maxPt
             Dim zoomPt1(0 To 2) As Double
             Dim zoomPt2(0 To 2) As Double
          
              zoomPt1(0) = minPt(0): zoomPt1(1) = minPt(1): zoomPt1(2) = 0
              zoomPt2(0) = maxPt(0): zoomPt2(1) = maxPt(1): zoomPt2(2) = 0
              ZoomWindow zoomPt1, zoomPt2
              aDoc.Regen acActiveViewport
          
          Set oUtil = Nothing
          Set aSpace = Nothing
          Set aDoc = Nothing
          Set ACAD = Nothing
          
ErrorHandler:
            If Err.Number <> 0 Then
            MsgBox Err.Description
            End If
          End Sub
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
Олег (jr.) вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как извлечь данные из файла Excel

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузить данные зи таблицы Autocad в Excel gizmo_zx AutoCAD 4 14.07.2011 11:40
как скопировать ячейки excel в чертеж AutuCAD vestes AutoCAD 5 14.06.2011 00:37
Подключение Excel к AutoCad 2008 c помощью базы ODBC Eddicordo AutoCAD 4 03.02.2011 17:01
структурированный список Holon Программирование 22 11.09.2007 14:09
Как передать данные (текст) из одного файла в другой HiddenM AutoCAD 6 14.12.2005 19:50