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

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

не работает макрос перевода спецификации Excel в кад

Ответ
Поиск в этой теме
Непрочитано 19.11.2011, 00:30 #1
не работает макрос перевода спецификации Excel в кад
valeal
 
проектировщик сетей связи
 
Регистрация: 20.04.2009
Сообщений: 19

Помогите пожалуйста разобраться. Пользовалась до этого двумя макросами для Excel - e2aspec, один для AutoCad - e2atab. Дома система слетела, а работу поменяла, собственно пытаюсь настроить макросы заново. Импортирую в excel из VBA, импортирую в autocad из из VBA. Запускаю макрос в Excel - не понятно выполняется или нет, запускаю в автокад - на домашнем компе пишет sub or function not defined и указывает на строку с Cells, на рабочем запрашивает точку вставки, выдаёт какое-то число, далее пишет file nill (может вру, но что-то в этом роде). Всё перепробовала, код править боюсь - макросы рабочие, а я в VBA не сильна В чём проблема может быть?
Просмотров: 5095
 
Непрочитано 19.11.2011, 14:52
#2
Кулик Алексей aka kpblc
Moderator

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


Для начала - где код макросов?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 19.11.2011, 15:33
#3
valeal

проектировщик сетей связи
 
Регистрация: 20.04.2009
Сообщений: 19


Public Sub e2atab()

Dim KV(14) As Integer

KV(1) = 1
KV(2) = 58
KV(3) = 17
KV(4) = 17
KV(5) = 17
KV(6) = 17
KV(7) = 17
KV(8) = 23
KV(9) = 17
KV(10) = 17
KV(11) = 24
KV(12) = 28
KV(13) = 17
KV(14) = 17

i = 1
For Each cc In Selection
If i = 1 Then
Col1 = cc.Column
row1 = cc.Row
End If
cl = cc.Column
rw = cc.Row
i = i + 1
Next cc
col2 = cl
row2 = rw

DataLisp$ = "c:\spec.dat"
Open DataLisp$ For Output As #1

Print #1, col2 - Col1 + 1

Print #1, row2 - row1 + 1

Print #1, Cells(1, Col1).Text

For i = Col1 To col2
For j = row1 To row2

hor = Cells(j, i).HorizontalAlignment

Select Case hor
Case -4108
'Print #1, "C"
al = "C"
Case -4131
'Print #1, "L"
al = "L"
Case -4152
'Print #1, "R"
al = "R"
Case Else
'Print #1, "L"
al = "L"
End Select
'k = Cells(3, i).Value
'Print #1, KV(i)
k = Cells(j, i).Text
'Print #1, k

Print #1, al
Print #1, KV(i)
Print #1, k

Next
Next

'Print #1,
'For i = Col1 To col2
' k = Cells(2, i).Value
' Print #1, k
' k = Cells(3, i).Value
' Print #1, k
'Next
Close #1
End Sub

Проблема видимо с этим кодом, так как после загрузки аналогичного кода с этого форума всё заработало. Глючит на строчке
Print #1, Cells(1, Col1).Text. Выделяет Cells.
Интересно почему, раньше всё работало и я не помню чтобы что-то меняла в коде.
valeal вне форума  
 
Непрочитано 19.11.2011, 17:20
#4
maximas

проектирование. автоматика
 
Регистрация: 18.10.2007
Литва
Сообщений: 104


Можно попробовать обойти проблему. Поставить бесплатный Nanocad 3.0 (или позднее) и импортировать exel таблицу. Для етого надо открыть имеющейся документ (расширение только xls), в нанокаде «черчение»-«таблицы»-импортироватх в ехеl.
maximas вне форума  
 
Непрочитано 20.11.2011, 09:39
#5
Олег (jr.)

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


Цитата:
Сообщение от valeal Посмотреть сообщение
макросы рабочие, а я в VBA не сильна В чём проблема может быть?
Кажись кто-то все же правил... у меня работает в 2009-м, Эксель 2007 Win 7
(возможно пропущена директива Option Explicit)
Скопируй отсюда и сохрани как дубль:
Код:
[Выделить все]
Option Explicit

Public Sub e2atab()
 Dim cc As Range
 Dim i, j, Col1, cl, rw, Row1, Col2, Row2, DataLisp$, hor, Al$, K
Dim KV(14) As Integer
 
KV(1) = 1
 KV(2) = 58
 KV(3) = 17
 KV(4) = 17
 KV(5) = 17
 KV(6) = 17
 KV(7) = 17
 KV(8) = 23
 KV(9) = 17
 KV(10) = 17
 KV(11) = 24
 KV(12) = 28
 KV(13) = 17
 KV(14) = 17

 i = 1
 For Each cc In Selection
 If i = 1 Then
 Col1 = cc.Column
 Row1 = cc.Row
 End If
 cl = cc.Column
 rw = cc.Row
 i = i + 1
 Next cc
 Col2 = cl
 Row2 = rw
 
DataLisp$ = "c:\Test\spec.dat"
 Open DataLisp$ For Output As #1
 
Print #1, Col2 - Col1 + 1
 
Print #1, Row2 - Row1 + 1
 
Print #1, Cells(1, Col1).Text
 
For i = Col1 To Col2
 For j = Row1 To Row2
 
hor = Cells(j, i).HorizontalAlignment
 
Select Case hor
 Case -4108
 'Print #1, "C"
Al = "C"
 Case -4131
 'Print #1, "L"
Al = "L"
 Case -4152
 'Print #1, "R"
Al = "R"
 Case Else
 'Print #1, "L"
Al = "L"
 End Select
 'k = Cells(3, i).Value
'Print #1, KV(i)
 K = Cells(j, i).Text
 'Print #1, k

 Print #1, Al
 Print #1, KV(i)
 Print #1, K

 Next
 Next
 
'Print #1,
 'For i = Col1 To col2
 ' k = Cells(2, i).Value
' Print #1, k
 ' k = Cells(3, i).Value
 ' Print #1, k
 'Next
 Close #1
 End Sub
Олег (jr.) вне форума  
 
Автор темы   Непрочитано 21.11.2011, 19:48
#6
valeal

проектировщик сетей связи
 
Регистрация: 20.04.2009
Сообщений: 19


Проблему вроде как решила путём скачивания аналогичного макроса (по ходу дела того же самого) с сайта. Но этот вариант тоже проверю. Спасибо.
valeal вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > не работает макрос перевода спецификации Excel в кад

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Расчет ведомости отправочного элемента. Макрос VBA Excel." Вопросы и ответы по програмке. Brain Murder Программирование 4 13.12.2010 18:42
Как выглядит макрос, обнуляющий значения в определенных ячейках Excel при открытии файла? loje4ka Программирование 4 16.10.2008 10:46
Макрос c _Attedit не работает в 2009 Vova AutoCAD 4 12.10.2008 16:49
Не работает макрос изменяющий цвет Джин Программирование 10 21.11.2006 16:53
Не работает макрос Torino Программирование 9 18.11.2004 14:41