【发布时间】:2021-05-21 21:26:37
【问题描述】:
我编写了以下 Excel 宏来调用打开的 Visio 文件中的另一个宏:
Private Sub visio_change_shape(Index_value As Integer)
Dim AppVisio As Object
Dim VisioSystems As Object
Set AppVisio = GetObject(, "Visio.Application")
Set VisioSystems = AppVisio.Documents(1)
VisioSystems.ExecuteLine ("Select_Shape_excel")
End Sub
这个宏工作正常。但是,当我想通过同一个宏传递一个整数时,我得到一个异常错误:
Private Sub visio_change_shape(Index_value As Integer)
Dim AppVisio As Object
Dim VisioSystems As Object
Set AppVisio = GetObject(, "Visio.Application")
Set VisioSystems = AppVisio.Documents(1)
VisioSystems.ExecuteLine ("Select_Shape_excel Index_value") '<--Error occurs here
End Sub
基于Microsoft documentation,这应该是正确的。任何想法为什么我会收到错误?
【问题讨论】:
-
首先,将 () 放在要传递给
ExecuteLine的参数周围(我知道这是文档时代要做的事情,但这不是 MS 文档第一次出错) .其次你要传递Index_value的值,所以使用VisioSystems.ExecuteLine "Select_Shape_excel " & Index_value -
@chrisneilsen 感谢您的反馈,但同样的错误仍然发生。
-
@VBAPete 我想你想使用
Document而不是Documents。只有Document对象有ExcecuteLine方法:docs.microsoft.com/en-us/office/vba/api/…