Link cell with Excel Shape

前端 未结 2 1403
盖世英雄少女心
盖世英雄少女心 2020-12-18 08:06

In excel, we insert a shape, and we can link it to a cells value, by selecting shape and typing the cell reference in formula bar. I want to know: How can we do that program

2条回答
  •  再見小時候
    2020-12-18 08:50

    You don't need to use Select to apply formulas to Shapes. Select should be avoided wherever possible as it bloats code, and can have unintended consequences - for example triggering Events

    Instead you can work with the Formula directly by using DrawingOBject, seeFormAppwhich also will let you manipulate existing formula (ie add 6 cell to A2 to make it A8, A12 to A18 etc). The second code routine FormAdd makes this adjustment, it works on both cell addresses and range names

    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
    

提交回复
热议问题