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)
这是我想以编程方式进行的操作
现在已经好几天了,我正在寻找它.真的需要帮助,非常感谢.
您不需要使用"选择"将公式应用于"形状".应尽可能避免选择,因为它会使代码膨胀,并且可能会产生意想不到的后果 - 例如触发事件
相反,您可以使用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)