Разделение строк в Excel из VBA Autocad

Автор Тема: Разделение строк в Excel из VBA Autocad  (Прочитано 2991 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн alihovskyАвтор темы

  • ADN OPEN
  • Сообщений: 27
  • Карма: 2
  Здравствуйте, подскажите кто может сталкивался с подобным, как в данном случае вставить разделительную строку в таблицу если sel_obj(w).Layer не равен sel_obj(w + 1).Layer
Что неужели нужно selectionset разбивать для этого :o?

Код - Visual Basic [Выбрать]
  1. Option Explicit
  2. Sub FS_MyTable_act2()
  3. Dim fskdataType As Integer
  4. Dim fskdata As Variant
  5. Dim AP As Excel.Application
  6. Dim WB As Excel.Workbook
  7. Dim WS As Excel.Worksheet
  8. Dim FPath, str_FPath, FName  As String
  9. Dim C_str, z, pos_my_name As Integer
  10. Dim MyTable As AcadTable
  11. Dim   la_r, my_name, mat_l As String
  12. ReDim sel_obj(0 To fs_sel.Count - 1) As AcadEntity
  13. ReDim p(0 To fs_sel.Count - 1) As Integer
  14. Dim j, w, m As Integer
  15.  
  16.     Set AP = Excel.Application
  17.     Set WB = Excel.Workbooks.Add("***")
  18.     Set WS = Excel.Worksheets("***")
  19.  
  20.         FPath = ThisDrawing.Path
  21.         FName = ThisDrawing.Name
  22.         C_str = Len(FName) - 4
  23.         FName = Left(FName, C_str)
  24.         str_FPath = FPath & "/" & FName & ". ***" & ".xlsx"
  25.         z = 4
  26.    
  27.  For w = 0 To fs_sel.Count - 1
  28.         Set sel_obj(w) = fs_sel.Item(w)
  29.             la_r = sel_obj(w).Layer
  30.             pos_my_name = InStr(la_r, " ")
  31.             mat_l = Mid(la_r, 2, pos_my_name - 2)
  32.             z = z + 1
  33.             sel_obj(w).GetXData "FS_Count", fskdataType, fskdata
  34.             my_name = Mid(la_r, pos_my_name, Len(la_r) + 1 - pos_my_name)
  35.             WS.Cells(z, 2) = mat_l
  36.             WS.Cells(z, 4) = my_name
  37.             WS.Cells(z, 5) = fskdata(2)
  38.     Next
  39.  
  40. WB.SaveAs (str_FPath)
  41. AP.Quit
  42. End Sub
« Последнее редактирование: 24-10-2018, 13:10:18 от alihovsky »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Разделение срок в Excel из VBA Autocad
« Ответ #1 : 23-10-2018, 20:53:44 »
Здравствуйте, подскажите кто может сталкивался с подобным, как в данном случае вставить разделительную строку в таблицу если sel_obj(w).Layer не равен sel_obj(w + 1).Layer
Что такое разделительная строка?
Что неужели нужно selectionset разбивать для этого :o?
Вот уж это точно не нужно!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн alihovskyАвтор темы

  • ADN OPEN
  • Сообщений: 27
  • Карма: 2
Re: Разделение срок в Excel из VBA Autocad
« Ответ #2 : 23-10-2018, 22:30:00 »
Что такое разделительная строка?



Отмечено как Решение alihovsky 23-10-2018, 22:55:47

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Разделение срок в Excel из VBA Autocad
« Ответ #3 : 23-10-2018, 22:39:08 »
alihovsky,
Т.е. просто пустая строка? Так в чем проблема?
вместо строки:
Код - Visual Basic [Выбрать]
  1. z = z + 1
пишешь:
Код - Visual Basic [Выбрать]
  1. if w > 0 then
  2.  la_r1 = sel_obj(w-1).Layer
  3.  if la_r <> la_r1 then
  4.    z = z + 1
  5.  end if
  6. end if
  7. z = z + 1
Или я чего-то не понимаю?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн alihovskyАвтор темы

  • ADN OPEN
  • Сообщений: 27
  • Карма: 2
Re: Разделение срок в Excel из VBA Autocad
« Ответ #4 : 23-10-2018, 22:55:12 »
Да нет конечно, это я туплю! Спасибо громаднейшее! Работает!! ;D