excel - VBA 运行时有时会出错,但有时在自动连接 visio 形状时不会出错
问题描述
我有一个相当大的程序,但它的作用是扫描数据表并使用该信息创建图表。一旦它放置了它返回的所有符号并将它们与我编写的这个函数连接起来,该函数通过放置一个连接器然后将其形状表的开始 x 和结束 x 部分更改为两个对象的连接点行来工作连接。宏将运行良好,毫无问题地进行一大堆连接,然后它会随机通过一个Run-time error '-2032465768 ...
并说,“发生了异常”。我不明白的是,它将连接器正确放置在同一图表的相似部分上,当我查看两个对象的形状表时,它们的连接点已定义。此外,它在我运行它的其他时间偶尔发生,有时当我重新运行它时,它在之前遇到异常的部分工作正常。
连接两个对象的函数是:
Sub ConnectShapes(Diagram As clsNewDiagram, Shape1 As Visio.Shape, Shape1ConnectionNum, Shape2 As Visio.Shape, Shape2ConnectionNum, Optional Color As Integer = LineColor.BLACK)
Dim Connector As Visio.Shape
Set Connector = Diagram.CurrentPage.Drop(Diagram.Document.Masters.ItemU("Dynamic connector"), 0#, 0#)
Dim vsoCell1 As Visio.Cell
Dim vsoCell2 As Visio.Cell
Set vsoCell1 = Connector.CellsSRC(visSectionObject, visRowXForm1D, vis1DBeginX)
Set vsoCell2 = Shape1.CellsSRC(visSectionConnectionPts, Shape1ConnectionNum, 0)
vsoCell1.GlueTo vsoCell2
Set vsoCell1 = Connector.CellsSRC(visSectionObject, visRowXForm1D, vis1DEndX)
Set vsoCell2 = Shape2.CellsSRC(visSectionConnectionPts, Shape2ConnectionNum, 0)
vsoCell1.GlueTo vsoCell2
Connector.SendToBack
'Connector.CellsSRC(visSectionObject, visRowShapeLayout, visSLOLineRouteExt).FormulaU = "2" ' For curved connector.
'Connector.CellsSRC(visSectionObject, visRowShapeLayout, visSLOConFixedCode).FormulaU = "3"
If Color = LineColor.FIBER Then
Connector.CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = "THEMEGUARD(RGB(255,0,255))"
ElseIf Color = LineColor.DC Then
Connector.CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = "THEMEGUARD(RGB(255,102,0))"
ElseIf Color = LineColor.RET Then
Connector.CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = "THEMEGUARD(RGB(0,202,0))"
End If
End Sub
当我按下调试它不喜欢这条线,但它适用于其他符号
解决方案
推荐阅读
- mysql - 本地计算机上的 MySQL 服务启动然后停止
- vba - 宏在两个工作簿中查找相同的单元格并将其他单元格复制到找到的单元格后面
- ios - 从字节中获取字符串(Corebluetooth,Swift)
- html - 没有文本,这些 div 元素很好,但是当我将文本放入框中时,它会更改框
- elasticsearch - 弹性监控基础架构 - 指标中的空白字段
- python - 不完整的重新查找匹配
- r - 我想使用给定的代码保存从循环生成的图。我无法将绘图保存在一个文件中
- javascript - 如何使用 FirebaseCloud sendNotification 功能发送不同类型的通知
- php - FPDF 单元格将文本放置在某处
- webpack - 如何将 webpack-dev-middleware 与拆分的 web/server 包一起使用?