在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是我想以编程方式执行的操作
现在已经好几天了,我正在搜索它。真的需要帮助,非常感谢。
答案 0 :(得分: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
答案 1 :(得分:0)
最简单的选择是先以编程方式选择形状,然后应用公式
Dim Shp as Shape
For each Shp in ActiveSheet.Shapes
Shp.Select
Selection.Formula = "=A1"
Next
当然,如果工作表上的形状不支持.Formula
属性