使用VBA在Visio中写入网格中的单元格

时间:2019-07-02 13:26:18

标签: excel vba visio

我正在创建一个宏,该宏采用选定形状的文本并将其写到表的第一空行中。

试图插入一个Excel电子表格,但是每次我单击它时都保持滞后。

代替Im使用Grid形状生成50x1表格。问题是网格一次只能创建10行,这意味着我必须一起复制并粘贴网格。

现在的问题是,当我尝试遍历每个cellID来检查其是否完整或为空时,并且ID几乎是随机创建的,几乎没有逻辑模式。有没有一种方法可以自行设置ItemID,或者有更好的方法在visio中创建表格。

Dim vsoCharacters1 As Visio.Characters
    Set vsoCharacters1 = Application.ActiveWindow.Page.Shapes_
    .ItemFromID(7272).Characters 'Just copying from a cell at the moment.
    vsoCharacters1.Begin = 0
    vsoCharacters1.End = 2
    vsoCharacters1.Copy

    Dim vsoCharacters2 As Visio.Characters
    For i = 7163 To 7174  'The ItemID for this grid, manually controlled
        If Application.ActiveWindow.Page.Shapes.ItemFromID(i).Value = "" Then
            Set vsoCharacters2 = Application.ActiveWindow.Page.Shapes_
            .ItemFromID(i).Characters
            ActiveWindow.SelectedText = vsoCharacters2
            ActiveWindow.SelectedText.Paste
        ElseIf Application.ActiveWindow.Page.Shapes.ItemFromID(i)_
        .Value <> "" Then i = i + 1
    End

上面的代码目前未在编译,而是出现以下错误:

  

“如果没有结束则阻止”

0 个答案:

没有答案