OK, thanks for the info Jeff.
I'm starting to understand a little more on the block collections
Here is the revised code.
;;=======================[ cUpdate.lsp ]=======================
;;; Author: Copyright© 2006 Charles Alan Butler
;;; Version: 1.1 Jan. 03, 2006
;;; Purpose: To update attributes in a drawing, nested blocks & xref
;;; Ignores locked or Frozen layers
;;; Sub_Routines: -None
;;; Requirements: -None
;;; Returns: -None
;;;==============================================================
;;
(defun c:cupdate (/ ss ent obj att blks newtext taglist)
(setq newtext "2006 C-n-R CORPORATION"
taglist '("COPYRIGHT" "COPYRIGHTYEAR"))
(or *doc* (setq *doc* (vla-get-activedocument (vlax-get-acad-object))))
(if (< 0 (vla-get-count (setq blks (vla-get-blocks *doc*))))
(progn
(vlax-for blk blks
(vlax-for ent blk
(if (and (vlax-property-available-p ent 'hasattributes)
(= (vla-get-hasattributes ent) :vlax-true)
)
(progn
(foreach att (vlax-invoke ent 'getattributes)
(if (member (vla-get-tagstring att) taglist)
(vla-put-textstring att newtext)
)
)
)
)
)
)
(vla-regen *doc* acactiveviewport)
)
)
(princ)
)
(prompt "\nCopyright Update Loaded, Enter cupdate to run.")
(princ)