Как скопировать раздел таблицы Visio между фигурами в VBA - PullRequest
1 голос
/ 08 января 2009

Есть ли способ копирования раздела из фигуры в другую фигуру с помощью VBA? Я специально пытаюсь скопировать все пользовательские свойства и ячейки пользователя с одной страницы на другую.

1 Ответ

1 голос
/ 09 января 2009

К сожалению, не существует простого способа сделать это. Вам нужно будет перебрать все строки исходного листа и создать те же строки на конечном листе. E.g.:

Dim oPageSheet1 As Visio.Shape
Dim oPageSheet2 As Visio.Shape
Dim rowName     As String
Dim i   As Integer

Set oPageSheet1 = Visio.ActiveDocument.Pages.Item(1).PageSheet
Set oPageSheet2 = Visio.ActiveDocument.Pages.Item(2).PageSheet

i = visRowUser

While oPageSheet1.CellsSRCExists(visSectionUser, i, visUserValue, False)
    oPageSheet2.AddNamedRow visSectionUser, oPageSheet1.Section(visSectionUser).Row(i).NameU, 0
    oPageSheet2.Section(visSectionUser).Row(i).Name = oPageSheet1.Section(visSectionUser).Row(i).Name
    oPageSheet2.CellsSRC(visSectionUser, i, visUserValue).FormulaU = oPageSheet1.CellsSRC(visSectionUser, i, visUserValue).FormulaU
    oPageSheet2.CellsSRC(visSectionUser, i, visUserPrompt).FormulaU = oPageSheet1.CellsSRC(visSectionUser, i, visUserPrompt).FormulaU
    i = i + 1
Wend

Если вам нужно скопировать большое количество строк, и производительность является соображением, вы должны исследовать, используя AddRows и SetFormulas .

...