2011-11-18 323 views
4

在excel中,我们插入一个形状,并且可以通过选择形状并在公式栏中键入 单元格引用将其链接到单元格值。我想知道:我们如何以编程方式来做到这一点。像使用Excel形状的链接单元格

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 

Here是什么,我想现在要做的编程

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

回答

4

你不”不需要使用选择将公式应用于形状。选择应尽可能避免,因为它膨胀代码,并可能产生意想不到的后果 - 例如触发事件

相反,您可以使用DrawingOBject直接使用公式,请参阅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 
+0

+1我希望有人会找到包含'.Formula'属性的对象。 –

0

最简单的方法就是以编程方式选择形状,然后再套用公式

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

或课程,这将错误,如果在纸张上的形状不支持.Formula财产

相关问题