链接单元格与Excel形状

在Excel中,我们插入一个形状,我们可以通过select形状并在公式栏中input单元格引用来将它链接到单元格值。 我想知道:我们如何以编程的方式做到这一点。 喜欢

For Each shape As Excel.Shape In workshet.Shapes 'is there something like shape.Formula or any method from which I can do the above task. Next 

这是我想要以编程方式进行

现在是几天了,我正在寻找它。 真的需要帮助,非常感谢。

您不需要使用select将公式应用于形状。 select应尽可能避免,因为它膨胀的代码,并可能有意想不到的后果 – 例如触发事件

相反,您可以使用DrawingOBject直接使用FormApp ,也可以使用FormApp来操作现有的公式(即将6个单元格添加到A2中,使其成为A8,A12到A18等)。 第二个代码例程FormAdd进行这种调整,它对单元格地址和范围名称都起作用

 Sub FormApp() Dim Shp As Shape For Each Shp In ActiveSheet.Shapes 'formula Shp.DrawingObject.Formula = "=A1" 'range name Shp.DrawingObject.Formula = "=RangeName" Next End Sub Sub FormAdd() Dim Shp As Shape Dim rng1 As Range For Each Shp In ActiveSheet.Shapes Set rng1 = Nothing If Len(Shp.DrawingObject.Formula) > 0 Then On Error Resume Next Set rng1 = Range(Shp.DrawingObject.Formula) On Error GoTo 0 If Not rng1 Is Nothing Then Shp.DrawingObject.Formula = "=" & rng1.Offset(6, 0).Address End If Next End Sub 

最简单的select是以编程方式首先select形状,然后应用公式

 Dim Shp as Shape For each Shp in ActiveSheet.Shapes Shp.Select Selection.Formula = "=A1" Next 

当然,如果工作表上的形状不支持.Formula属性,这将会报错