Тема: Как записать значение в ячейку таблицы?

Вопрос, наверное, элементарный, но в VBA я пока не силен.
Как создать таблицу, мне понятно:
  Dim MyModelSpace As IAcadModelSpace2
  Set MyModelSpace = ThisDrawing.ModelSpace
  Dim pt(2) As Double
  Dim MyTable As AcadTable
  Set MyTable = MyModelSpace.Addtable(pt, 5, 5, 10, 30)
А вот как внести в нужную ячейку значение?
Вроде бы как метод SetText, но как его применить?
что-то вроде
set X=MyTable.SetText(row, col, pStr) ?

Re: Как записать значение в ячейку таблицы?

Public Function GridToExcel(contr As MSHFlexGrid)
  Set objExcel = New excel.Application
  objExcel.Visible = True
  objExcel.SheetsInNewWorkbook = 1
  objExcel.Workbooks.Add
With objExcel.ActiveWorkbook.ActiveSheet
For i = 0 To contr.Rows - 1
 For j = 0 To contr.Cols - 2
    .Cells(i + 1, j + 1) = contr.TextMatrix(i, j)
 Next
Next
.Cells(1, 1).CurrentRegion.EntireColumn.AutoFit
End With
Set objExcel = Nothing
End Function

Вот мой примерчик экспорта грида (в данном случае MSHFlexGrid) в MSGrid aka Excel

Re: Как записать значение в ячейку таблицы?

Ой я вообще не на то ответил, извиняюсь

Re: Как записать значение в ячейку таблицы?

Судя по справке, перед "change the Table object"
надо "Open the Table object in write mode", а вот как это сделать?

Re: Как записать значение в ячейку таблицы?

Dim pt(2) As Double
Dim MyT As AcadTable
Set MyT = ThisDrawing.ModelSpace.AddTable(pt, 5, 5, 10, 30)
MyT.SetText 1, 0, "Hello!!!"
если вам не нужно использовать возвращаемое методом значение или ссылку не ставте скобки

Re: Как записать значение в ячейку таблицы?

> SmeL
А как импортировать таблицу из Word в AutoCAD, чтобы сохранить форматирование?
Иначена до создавать таблицу, заполняемую автоматически в AutoCADе, а я и в Worde VBA только 3 месяца осваиваю.

Re: Как записать значение в ячейку таблицы?

Подскажите, как сделать что-бы таблица увеличивалась на 1 строку при вводе нового параметра. Суть такова програма размещает на чертеже "solid"ы, размеры надо записать в таблицу чтобы с появлением нового объекта таблица увеличивалась на 1 строку.

Re: Как записать значение в ячейку таблицы?

> Валерий
Перепиши на VBA, почти то что тебе нужно:

(defun c:stb (/ acsp adoc i row tab)
  (vl-load-com)
  (or adoc
      (setq adoc (vla-get-activedocument
           (vlax-get-acad-object)
         )
      )
  )
  (or acsp
      (setq acsp (if (= (getvar "CVPORT") 1)
           (vla-get-paperspace
             adoc
           )
           (vla-get-modelspace
             adoc
           )
         )
      )
  )
  (vla-endundomark
    adoc
  )
  (vla-startundomark
    adoc
  )
  (setq    tab (vlax-invoke
          acsp
          'Addtable
          (getpoint "\nТочка вставки таблицы \n")
          2                ; минимум - 2
          3
          1.5
          18.
        )
  )
  (vlax-invoke tab 'Settext 0 0 "Наименование таблицы")
  (vlax-invoke tab 'Settext 1 0 "1")
  (vlax-invoke tab 'Settext 1 1 "2")
  (vlax-invoke tab 'Settext 1 2 "3")
  (setq i 1)
  (repeat 10
    (setq row (vlax-get-property tab 'Rows)) ; номер последней строки
    (vlax-invoke
      tab
      'InsertRows
      row
      (vlax-invoke tab 'GetTextHeight 1)
      1
    )
    (vlax-invoke tab 'Settext row 0 (strcat "Длина #" (itoa i)))
    (vlax-invoke tab 'Setcellalignment row 0 acmiddlecenter)
    (vlax-invoke
      tab
      'Settext
      row
      1
      (strcat "Ширина #" (itoa i))
    )
    (vlax-invoke tab 'Setcellalignment row 1 acmiddlecenter)
    (vlax-invoke
      tab
      'Settext
      row
      2
      (strcat "Высота #" (itoa i))
    )
    (vlax-invoke tab 'Setcellalignment row 2 acmiddlecenter)
    (setq i (1+ i))
  )
  (vla-update tab)
  (vlax-release-object tab)
  (vla-endundomark
    adoc
  )
  (princ)
)
; TesT : (c:stb)
(prompt "\n    |----------------------------------|\n")
(prompt "\n    | В командной строке набери STB ...|\n")
(prompt "\n    |----------------------------------|\n")

~'J'~

Re: Как записать значение в ячейку таблицы?

Всем привет, скажите плизз...вот создали таблицу..а как установить требуемую ширину столбца(одного) например второго...

Re: Как записать значение в ячейку таблицы?

> Aleksandr
См. Help

TableObj.SetColumnWidth column, width
'//TableObj.SetColumnWidth 2, 25.0

~'J'~

Re: Как записать значение в ячейку таблицы?

спасиб)