Тема: Деление столбцов в таблице

Помогите пожалуйста.
Скажите пожалуйста как сделать в таблице деление столбцов. Мне очень нужно знать принцип. Причем столбец в первой строке может не делиться, а во второй строке  делится, а в третьей строке того же столбца может опять не делиться.
Вот код:
adRow = 2
    adTable.InsertRows adRow, 18, 1
    pStr = n1
      adTable.SetText adRow, 0, pStr
        adTable.SetTextStyle2 adRow, 0, 0, "STANDARD"
        adTable.SetTextHeight2 adRow, 0, 0, 10
        adTable.SetCellAlignment adRow, 0, acMiddleCenter
pStr = k1
      adTable.SetText adRow, 1, pStr
        adTable.SetTextStyle2 adRow, 1, 0, "STANDARD"
        adTable.SetTextHeight2 adRow, 1, 0, 10
        adTable.SetCellAlignment adRow, 1, acMiddleCenter
Этот код делает три столбца. Я вношу в них данные.

Re: Деление столбцов в таблице

> Дарья
Вкратце тебе тогда нужно делать не 3
а 5 столбцов, а потом объединять ячейки
которые не должны делиться
Для этого смотри метод MergeCells для
таблиц в Help.
Синтаксис по памяти вроде такой:

objTable.MegeCells minrow, maxrow, mincol, maxcol

из названий переменных надеюсь ясно что
они из себя представляют
Тип всех этих переменных - Long
Дерзай
~'J'~

Re: Деление столбцов в таблице

> fixo
Посмотрела метод. А у Вас нет примера с этим методом????

Re: Деление столбцов в таблице

Я нашла только синтаксис:
Объединение ячеек в таблице.
Синтаксис
object.MergeCells(minRow, maxRow, minCol, maxCol)
Object
Table
Объект или объекты обращающиеся к этому методу.
minRow
Long; нижняя граница индекса строки
maxRow
Long; верхняя граница индекса строки
minCol
Long; zero-based lower bound of a column index нижняя граница индекса столбца
maxCol
Long; zero-based upper bound of a column index верхняя граница индекса столбца
Замечания
Этот метод объединяет прямоугольную область ячеек. Общее количество ячеек, которые будут объединены равно (maxRow - minRow + 1) * (maxCol - minCol + 1).

Re: Деление столбцов в таблице

Как им пользоваться????
У меня сейчас голова треснет если Вы не поможете мне....

Re: Деление столбцов в таблице

> Дарья
Посмотри пример, только в зависимости от того
есть строка с титулом в таблице или нет
нумерация строк в цикле должна измениться

Sub Merge_Cells()
    Dim oSpace As AcadBlock
    Set oSpace = ThisDrawing.ModelSpace
    Dim pt(2) As Double
    Dim oTable As AcadTable
    Set oTable = oSpace.AddTable(pt, 4, 4, 1, 7)
    ZoomExtents
    Dim i As Long, j As Long
    oTable.TitleSuppressed = True
    oTable.HeaderSuppressed = True
    For i = 0 To oTable.Rows - 1
        For j = 0 To oTable.Columns - 1
            oTable.SetCellType i, j, acTextCell
            oTable.SetCellTextHeight i, j, 0.4
            oTable.SetCellAlignment i, j, acMiddleCenter
            oTable.SetText i, j, "Row " & CStr(i) & ": Column 0"
        Next j
    Next i
    For i = 1 To oTable.Rows - 2
    oTable.MergeCells i, i, 0, 3
    Next
    For i = 0 To oTable.Columns - 1
    oTable.SetText oTable.Rows - 1, i, "Row " & CStr(oTable.Rows - 1) & ": Column " & CStr(i)
    Next
    oTable.RecomputeTableBlock True
    oTable.Update
End Sub

~'J'~

Re: Деление столбцов в таблице

> fixo
Простите за надоедливость. Вы мне очень помогаете.
А Вы не могли бы перевести этот код на человеческий язык пожалуйста???

Re: Деление столбцов в таблице

Вот этот код создает стобец:
pStr = n1
adTable.SetText adRow, 0, pStr
adTable.SetTextStyle2 adRow, 0, 0, "STANDARD"
adTable.SetTextHeight2 adRow, 0, 0, 10
adTable.SetCellAlignment adRow, 0, acMiddleCenter
Вы не могли бы сказать пожалуйста аналогичный этому коду код, который разделит этот столбец на две части. Причем разделит не целиком столбец, а несколько строк. Остальные строки делиться не будут

Re: Деление столбцов в таблице

> Дарья
Я только завтра смогу помочь и то не гарантирую
Исследуй пока сама:

Sub Merge_Cells_Example()
    Dim oSpace As AcadBlock
    Set oSpace = ThisDrawing.ModelSpace
    Dim pt(2) As Double
    Dim oTable As AcadTable
    Set oTable = oSpace.AddTable(pt, 12, 5, 1, 0.75)
    ZoomExtents
    Dim i As Long, j As Long
With oTable
   .RegenerateTableSuppressed = True
    For j = 0 To oTable.Columns - 1
    .ColumnWidth = 12
    Next
    .TitleSuppressed = True
    .HeaderSuppressed = True
    .SetText 0, 0, "TITLE"
    For i = 1 To oTable.Rows - 1
    .RowHeight = 1#
    If i Mod 2 = 0 Then
    .MergeCells i, i, 1, 2
    .MergeCells i, i, 3, 4
    For j = 0 To oTable.Columns - 1
    .HorzCellMargin = 0.1
    .VertCellMargin = 0.1
    .SetTextHeight 1, 0.54
    .SetText i, j, "Row " & CStr(i) & ": Column " & CStr(j + 1)
    .SetText i, 1, "Row " & CStr(i) & ": Columns 2 + 3"
    .SetText i, 3, "Row " & CStr(i) & ": Columns 4 + 5"
    Next
    Else
    For j = 0 To oTable.Columns - 1
    .HorzCellMargin = 0.1
    .VertCellMargin = 0.1
    .SetTextHeight 1, 0.54
    .SetText i, j, "Row " & CStr(i) & ": Column " & CStr(j + 1)
    Next
    End If
    Next
    .RegenerateTableSuppressed = False
    .Update
    End With
    Set oTable = Nothing
ZoomExtents
End Sub

~'J'~

Re: Деление столбцов в таблице

> fixo
Я не могу понять по какому принципу действует этот код. Вы не могли бы пожалуйста перевести на человеческий язык этот код???

Re: Деление столбцов в таблице

> Дарья
Делай как я
Выделяешь метод или функцию в коде
Потом жми F1
Берешь аглицкий словарь и переводишь
Или используй машинный перевод (корявый):
типа http://translation.paralink.com/
~'J'~

Re: Деление столбцов в таблице

> fixo
С английского не такая проблема перевести.
Я не понимаю принцип работы кода!!!!!
Давайте я построчно попробую перевести.

Re: Деление столбцов в таблице

Первая строка:

Sub Merge_Cells_Example()

Означает начало процедуры.Эта процедура называется "Соединение ячеек пример"

Re: Деление столбцов в таблице

Далее идет объявление переменных:
Переменная oSpace объявляется как автокадовский блок

Dim oSpace As AcadBlock

Re: Деление столбцов в таблице

Далее переменная oSpace добавляется в этот рисунок в модель листа:

Set oSpace = ThisDrawing.ModelSpace

Re: Деление столбцов в таблице

Объявляется точка вставки как число с двойной плавающей точкой:

Dim pt(2) As Double

Re: Деление столбцов в таблице

Объявляется переменная oTable как автокадовская таблица:

Dim oTable As AcadTable

Re: Деление столбцов в таблице

Поясните пожалуйста следующую строку, точнее сказать цифры которые стоят в скобках:

Set oTable = oSpace.AddTable(pt, 12, 5, 1, 0.75)