【发布时间】:2016-09-27 21:32:08
【问题描述】:
我插入了一个智能艺术,并将其转换为形状。并通过点击选择一个形状。
现在我想获得选定形状的 Shape 对象。我已经尝试过了,但它会引发异常。
dim shap as Excel.Shape = ExcelApp.Selection
我可以通过迭代 ActiveSheet.Shapes 或类似的方法来获取形状对象
dim shap as Excel.Shape = ActiveSheet.Shapes.Item(1)
但是我怎么知道这个形状是否被选中,真的需要帮助谢谢。
【问题讨论】:
-
你得到的错误是什么?您是否尝试过将
ExcelApp.Selection转换为形状? -
是的,我也尝试过显式转换,它给了我同样的例外。无法将“System.__ComObject”类型的 COM 对象转换为接口类型“Microsoft.Office.Interop.Excel.Shape”。此操作失败,因为 IID 为“{00024439-0000-0000-C000-000000000046}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:不支持此类接口(来自 HRESULT 的异常:0x80004002 (E_NOINTERFACE)) .
-
也许可以试试这里建议的方法:social.msdn.microsoft.com/Forums/en-US/vsto/thread/…
-
在 VBA 中,您不能使用“Dim x As Y = something”——您必须在单独的行上声明该对象。看看这(以及 Rachel 的建议)是否对你有帮助。