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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2012, 09:02   #1
ValeraVOLS
Пользователь
 
Регистрация: 29.12.2012
Сообщений: 14
По умолчанию Вставка блока в Автокаде по данным из Эксель?

Всем здравствуйте!
Подскажите пожалуйста, как выполнить вставку готового блока в Автокаде по данным из Эксель и по заданным координатам? P.S. Данные забитые в ячейках Эксель соответствуют именам блоков в Автокаде.
ValeraVOLS вне форума Ответить с цитированием
Старый 29.12.2012, 11:58   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

ИМХО это Вам лучше на форуме по автокаду спросить. Логичней.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 29.12.2012, 11:59   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

В этом посте есть справка с примерами VBA Autocad.Изучаете и применяете
Форум здесь
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 29.12.2012 в 12:01.
doober вне форума Ответить с цитированием
Старый 09.01.2013, 11:54   #4
ValeraVOLS
Пользователь
 
Регистрация: 29.12.2012
Сообщений: 14
По умолчанию Связь Автокада с экселем.

А как с помощью Автокада (макроса в Автокаде) считать информацию с ячейки Экселя и вывести как результат в виде блока?
ValeraVOLS вне форума Ответить с цитированием
Старый 09.01.2013, 12:58   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Первый ваиант.

Создать блок
Read excel file
Сделать все самому.

Второй вариант.

Сделать мне предложение,от которого я не смогу отказаться,получить готовый код
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 10.01.2013, 07:26   #6
ValeraVOLS
Пользователь
 
Регистрация: 29.12.2012
Сообщений: 14
По умолчанию

В области написания макросов у меня очень большие пробелы. Хотя из предложенного варианта 1 можно было бы брать и работать, но понять как это работает будет трудно. А по варианту 2 все зависит от цены вопроса, и если то что мы разработаем будет так сказать приносить результат, то почему бы и не договориться.
Вообще в этой области хотелось бы побольше иметь знакомых, так как написание макросов в VBA это интересно, ну и хотел бы научиться.
ValeraVOLS вне форума Ответить с цитированием
Старый 10.01.2013, 18:30   #7
ValeraVOLS
Пользователь
 
Регистрация: 29.12.2012
Сообщений: 14
По умолчанию

Уважаемый господин Doober, быть может дальнейшая просьба покажется наглостью, но не могли бы все таки подсказать как выполнить макрос для вставки готового блока по именам в Автокаде 2012 соответствующие данным из ячеек Эксель 2010 и по координатам прописанные также в ячейках Эксель 2010 (допустим в ячейке А1 написано - "Квадрат", А2 - "Прямоугольник", а в В1 - координаты для "Квадрата" - 49;168, В2 - координаты для "Прямоугольника" - 78;168, то в Автокаде должны по указанным координатам выстроится готовые блоки из "Квадрата" и "Прямоугольника")!!!
ValeraVOLS вне форума Ответить с цитированием
Старый 10.01.2013, 19:41   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Подразумевается,что блоки с именами Квадрат и прямоугольник имеются в наличии

Код:
Sub InsertBlock()
    Dim Eeex, K, Path As String
    Path = "E:\777\Задание.xls"
    Set Eeex = GetObject(Path).Worksheets(1)
    K = Eeex.range("A1:B2")
    Eeex.Parent.Close (False)
    Dim BlockName As String

    Dim insertionPnt(0 To 2) As Double
    BlockName = K(1, 1)
    insertionPnt(0) = CDbl(Split(K(1, 2), ";")(0))
    insertionPnt(1) = CDbl(Split(K(1, 2), ";")(1))
    insertionPnt(2) = 0#
    Set objTemp = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, BlockName, _
                                                     1, 1, 1, 0)
    BlockName = K(2, 1)
    insertionPnt(0) = CDbl(Split(K(2, 2), ";")(0))
    insertionPnt(1) = CDbl(Split(K(2, 2), ";")(1))
    insertionPnt(2) = 0#

    Set objTemp = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, BlockName, _
                                                     1, 1, 1, 0)

End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 11.01.2013, 09:34   #9
ValeraVOLS
Пользователь
 
Регистрация: 29.12.2012
Сообщений: 14
По умолчанию

Спасибо, всё работает. Вы настоящий профессионал. Но есть маленькое "но", данный макрос выполнен для диапазона ячеек "A1:B2", а как сделать для более большего диапазона, ну к примеру для ячеек "A1:B1000? Неужто придется команду "BlockName = K(1, 1)" выполнять 1000-у раз?
ValeraVOLS вне форума Ответить с цитированием
Старый 11.01.2013, 12:21   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Ка ни странно,но для большого количества строк в файле Excel,количество строк кода меньше.

BlockName-это имя блока,а не команда.

Код:
Sub InsertBlock()
    Dim Eeex, K, Path As String, lLastRowMY As Long
      Dim BlockName As String
         Dim insertionPnt(0 To 2) As Double
    Path = "E:\777\Задание.xls"
    Set Eeex = GetObject(Path).Worksheets(1)
    lLastRowMY = Eeex.Cells(Eeex.Rows.Count, 1).End(-4162).Row
    K = Eeex.Range("A1:B" & lLastRowMY)
    Eeex.Parent.Close (False)
    For n = 1 To UBound(K)
        BlockName = K(n, 1)
        insertionPnt(0) = CDbl(Split(K(n, 2), ";")(0))
        insertionPnt(1) = CDbl(Split(K(n, 2), ";")(1))
        insertionPnt(2) = 0#
        Set objTemp = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, BlockName, _
                                                         1, 1, 1, 0)
    Next

End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка таблицы эксель в ворд n0str0m0 Microsoft Office Word 3 22.05.2012 11:51
Вставка текстового блока методом object toglyatty HTML и CSS 2 01.04.2012 18:17
Вставка втроки в связанную эксель таблицу 95979 Microsoft Office Access 1 13.02.2012 12:19
Чертежи в автокаде Lemo Фриланс 4 02.06.2010 06:37
Вставка блока DIV в шаблоне Niсkname HTML и CSS 7 07.03.2009 16:27