And another (although Lee's will work with modified dynamic blocks if you have them):
(defun filter_set (blk tag lo hi / ss olst)
(vl-load-com)
(if (setq ss (ssget "_X" (list (cons 0 "INSERT") (cons 2 blk) (cons 66 1))))
(foreach blk (mapcar 'cadr (ssnamex ss))
(foreach att (vlax-invoke (vlax-ename->vla-object blk) 'getattributes)
(and (eq tag (vla-get-tagstring att))
(not (<= lo (atof (vla-get-textstring att)) hi))
(ssdel blk ss)
)
)
)
)
ss
)
(sssetfirst nil (filter_set "PL" "NO" 847. 850.)) ; block name, tag, range of values
;;Grabs all blocks that start with "P"
(sssetfirst nil (filter_set "P*" "NO" 847. 850.))
;;Grabs all blocks named "PL" "PD"
(sssetfirst nil (filter_set "PL,PD" "NO" 847. 850.))