使用Excel Shape链接单元格

Waq*_*qas 5 excel vba shape excel-vba

在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
Run Code Online (Sandbox Code Playgroud)

是我想以编程方式进行的操作

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

bre*_*tdj 5

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

相反,您可以使用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
Run Code Online (Sandbox Code Playgroud)