Как скопировать раздел таблицы Visio между фигурами в VBA
Есть ли способ копирования раздела из фигуры в другую фигуру с помощью VBA? Я специально пытаюсь скопировать все пользовательские свойства и пользовательские ячейки с одной страницы на другую.
1 ответ
Решение
К сожалению, не существует простого способа сделать это. Вам нужно будет перебрать все строки исходного листа и создать те же строки на конечном листе. Например:
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.