This is a rather old thread, so I donβt know if my post will help anyone, but I ran into a similar problem today and, thinking, found a solution.
First, I saved all the addresses of the ranges where the object exists in the array, and then in the second part of the code, checked the address of each cell in my selected range for each item in the array and performed tagging for the offset cell. if the address of the array element matches the address of the active cell in the selected range. Hope this helps. Here is the code:
Option Explicit Sub tagging() Dim rng As Range, shp As Shape, n As Integer, arr() As String, m As Integer, arrm As Variant m = 1 n = ActiveSheet.Shapes.Count ReDim arr(n) For Each shp In ActiveSheet.Shapes arr(m) = shp.TopLeftCell.Address m = m + 1 Next For Each rng In Selection m = 1 For Each arrm In arr If rng.Address = arr(m) Then rng.Offset(0, 30).Value = "Yes" Exit For Else rng.Offset(0, 30).Value = "No" End If If m < n Then m = m + 1 Else Exit For End If Next Next End Sub
source share