我正在使用Excel 2007.我有一个包含许多形状的工作表。每个形状都链接到另一个电子表格上的一个单元格(即' =数据!$ F $ 5'),以便在每个形状中显示一些文本。
现在,我想在形状中使用公式作为引用工作表中其他单元格的起点。这背后的想法是当用户点击形状以在消息框中为其提供附加信息时运行宏。
我试过用#34; ActiveShape.DrawingObject.Formula"制作一个字符串,但没有取得任何成功。有谁知道怎么做或提出另一种方法来实现这个目标?
非常感谢任何帮助。
答案 0 :(得分:1)
在您指定给形状的宏中。您可以使用
ActiveSheet.Shapes(Application.Caller).name
获取形状的名称
然后ActiveSheet.Shapes.Range(Array(name))
获取形状参考。然后您可以选择它并使用Selection.formula
来获取公式
将其复制并粘贴到您的宏形状中,您可以看到它是如何工作的:
Dim name As String
Dim formula As String
name = ActiveSheet.Shapes(Application.Caller).name
ActiveSheet.Shapes.Range(Array(name)).Select
formula = Selection.formula
MsgBox formula
注意:我确实试过formula = ActiveSheet.Shapes.Range(Array(name)).formula
,但vba对我不满意。所以我不得不坚持.Select and Selection.formula